commit: 299c548b124377e51f6c089bc0df31b2989be3ef
parent 906b121a1053557016734be0bf224c5ad317ee08
Author: Mark Felder <feld@feld.me>
Date: Thu, 23 Nov 2023 16:15:53 -0500
Prevent a blurhash failure from breaking all metadata collection
Diffstat:
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/lib/pleroma/upload/filter/analyze_metadata.ex b/lib/pleroma/upload/filter/analyze_metadata.ex
@@ -83,21 +83,23 @@ defmodule Pleroma.Upload.Filter.AnalyzeMetadata do
end
defp vips_blurhash(image = %Vix.Vips.Image{}) do
- {:ok, resized_image} = Operation.thumbnail_image(image, 100)
- {height, width} = {Image.height(resized_image), Image.width(resized_image)}
- max = max(height, width)
- {x, y} = {max(round(width * 5 / max), 1), max(round(height * 5 / max), 1)}
-
- {:ok, rgba} =
- if Image.has_alpha?(resized_image) do
- Image.to_list(resized_image)
- else
- Operation.bandjoin_const!(resized_image, [255])
- |> Image.to_list()
- end
-
- rgba = List.flatten(rgba)
-
- Blurhash.encode(x, y, width, height, rgba)
+ with {:ok, resized_image} <- Operation.thumbnail_image(image, 100),
+ {height, width} <- {Image.height(resized_image), Image.width(resized_image)},
+ max <- max(height, width),
+ {x, y} <- {max(round(width * 5 / max), 1), max(round(height * 5 / max), 1)} do
+ {:ok, rgba} =
+ if Image.has_alpha?(resized_image) do
+ Image.to_list(resized_image)
+ else
+ Operation.bandjoin_const!(resized_image, [255])
+ |> Image.to_list()
+ end
+
+ rgba = List.flatten(rgba)
+
+ Blurhash.encode(x, y, width, height, rgba)
+ else
+ _ -> nil
+ end
end
end