rubyimagemagickpngjpeglibrsvg

Base64 jpg to base64 Png in Ruby


I'm working with base64 files and i would like to convert a base64jpg image in a base64png image. Is there a way to do it?

The reason is i'm using rsvg-convert to convert svg files into png files, but when i have a base64jpg in my svg, it's not working, But it works with base64 files.


Solution

  • In ImageMagick, this works for me.

    Create JPG base 64 file:

    convert rose: rose.jpg
    

    enter image description here

    convert rose.jpg inline:rose_base64jpg
    

    The text file rose_base64jpg shows:

    data:image/jpeg;base64,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
    


    Convert from base 64 JPG to base 64 PNG:

    cat rose_base64jpg | convert inline:- PNG:- | convert - inline:rose_base64png
    

    The text file rose_base64png show:

    data:image/png;base64,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