cross-posted from: https://linkage.ds8.zone/post/523771
Before posting an image to the fedi, I want to be mindful about the network burden it will cause. I’m only uploading the image once but potentially thousands of people could end up downloading it.
If it’s a color image, then JPG is typically best. This #ImageMagick command reduces the filesize quite a bit, trading off quality:
$ convert "$original_image_file" \ +dither \ -posterize 8 \ -sampling-factor 4:2:0 \ -strip \ -quality 75 \ -interlace Plane \ -gaussian-blur 0.05 \ -colorspace RGB \ -strip \ smaller_file.jpgIf it’s a pic of a person, this processing will likely be a disaster. But for most things where color doesn’t matter too much, it can be quite useful. Play with different
-posterizevalues.If you can do with fewer pixels, adding a
-resizehelps.$ convert "$original_image_file" -resize 215x smaller_file.jpgIf you can get away with black and white, jpeg is terrible. Use PNG instead. E.g.
$ convert "$original_image_file" -threshold 30% -type bilevel smaller_file.pngFor privacy, strip the metadata
The ImageMagick
-stripoption supposedly strips out metadata. But it’s apparently not thorough because the following command yields a slightly smaller file size:$ exiftool -all= image.jpgWhat else?
Did I miss anything? Any opportunities to shrink images further? In principle the DjVu format would be more compact but it’s not mainstream and apparently not accepted by Lemmy.


I have the same goals as you (lowering the file size and stripping metadata), but am much more lazy. I’ll bring up the image I want to share in a viewer on screen, then do a cropped screengrab. So it creates a file the size of screen resolution, has no metadata from a camera, and better yet I can copy from the screengrab and paste directly into a Lemmy post with no file saving needed in the middle.