summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/upload/filter/analyze_metadata.ex34
1 files changed, 18 insertions, 16 deletions
diff --git a/lib/pleroma/upload/filter/analyze_metadata.ex b/lib/pleroma/upload/filter/analyze_metadata.ex
index 99d1ec5bc..92b80b1b1 100644
--- 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