Search code examples
rubyimagemagickstripminimagick

MiniMagick's "strip" function makes picture filesize bigger


I have used MiniMagick to compress JPEG files.

With strip function, I want to get rid of EXIF from image. So, I do:

image = MiniMagick::Image.open("my_picture.jpg")
image.strip
image.write("my_picture_small.jpg")

but sometimes the size of my_picture_small.jpg is bigger than my_picture.jpg.

However, when I don't use the strip function, like

image = MiniMagick::Image.open("my_picture.jpg")
# image.strip
image.write("my_picture_small.jpg")

my_picture_small.jpg's size is smaller.

That situation happened with some picture deal with Photoshop and in my CentOS computer, but run well with my Macbook. I don't know why stripping some information led to more storage.

Can anyone explain it?


Solution

  • Have found that ImageMagick will recompress image even if it with any arguments, such as

    convert image.jpg new_image.jpg
    

    new_image.jpg will be different from image.jpg more or less. If image.jpg is from a phone or camera or a image processing tools, the degree of difference is also different.

    So compress images with MiniMagick or Rmagick that use ImageMagick as there system support, just do convert -strip image.jpg new_image.jpg may led to a unexpected result, avoid to use MiniMagick command if there is no need to greatly compress file.