summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-02-20 14:21:08 -0600
committerMark Felder <feld@feld.me>2021-02-20 14:21:08 -0600
commitdaba3b85227b77de29259746fd427e49b47337d6 (patch)
tree8f4af64642369389bc9bce30389e85a112fe49cc
parent9e0e2fb6b44f37f0ca484e40208edd46cb0f3430 (diff)
Change to using heic-convert which is more common than mogrify supporting these files
-rw-r--r--lib/pleroma/application_requirements.ex2
-rw-r--r--lib/pleroma/upload/filter/heif_to_jpeg.ex18
-rw-r--r--test/pleroma/upload/filter/heif_to_jpeg_test.exs2
3 files changed, 10 insertions, 12 deletions
diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex
index 36e3cb550..4ee375819 100644
--- a/lib/pleroma/application_requirements.ex
+++ b/lib/pleroma/application_requirements.ex
@@ -163,7 +163,7 @@ defmodule Pleroma.ApplicationRequirements do
check_filter(Pleroma.Upload.Filters.Exiftool, "exiftool"),
check_filter(Pleroma.Upload.Filters.Mogrify, "mogrify"),
check_filter(Pleroma.Upload.Filters.Mogrifun, "mogrify"),
- check_filter(Pleroma.Upload.Filters.HeifToJpeg, "mogrify")
+ check_filter(Pleroma.Upload.Filters.HeifToJpeg, "heif-convert")
]
preview_proxy_commands_status =
diff --git a/lib/pleroma/upload/filter/heif_to_jpeg.ex b/lib/pleroma/upload/filter/heif_to_jpeg.ex
index ac81c354b..80024b19f 100644
--- a/lib/pleroma/upload/filter/heif_to_jpeg.ex
+++ b/lib/pleroma/upload/filter/heif_to_jpeg.ex
@@ -29,20 +29,18 @@ defmodule Pleroma.Upload.Filter.HeifToJpeg do
def filter(_), do: {:ok, :noop}
defp convert(tempfile) do
- # cannot save in place when changing format, so we have to use a tmp file
- # https://github.com/route/mogrify/issues/77
- # also need a valid extension or it gets confused
-
with_extension = tempfile <> ".heic"
+ jpeg = tempfile <> ".jpg"
+
File.rename!(tempfile, with_extension)
- %{path: converted} =
- with_extension
- |> Mogrify.open()
- |> Mogrify.format("jpg")
- |> Mogrify.save()
+ convert_cmd =
+ "heif-convert #{with_extension} #{jpeg}"
+ |> String.to_charlist()
+
+ :os.cmd(convert_cmd)
File.rm!(with_extension)
- File.rename!(converted, tempfile)
+ File.rename!(jpeg, tempfile)
end
end
diff --git a/test/pleroma/upload/filter/heif_to_jpeg_test.exs b/test/pleroma/upload/filter/heif_to_jpeg_test.exs
index 8d127bf76..4812bb3f0 100644
--- a/test/pleroma/upload/filter/heif_to_jpeg_test.exs
+++ b/test/pleroma/upload/filter/heif_to_jpeg_test.exs
@@ -7,7 +7,7 @@ defmodule Pleroma.Upload.Filter.HeifToJpegTest do
alias Pleroma.Upload.Filter
test "apply HeicToJpeg filter" do
- assert Pleroma.Utils.command_available?("mogrify")
+ assert Pleroma.Utils.command_available?("heif-convert")
File.cp!(
"test/fixtures/image.heic",