繁体   English   中英

如何将 PNG 图像转换为 JPG

[英]How to convert a PNG image to JPG

我正在尝试在 python 上实现一些东西。

我想比较两张图片,看看它们有多少相似。 我找到了 SSIM 方法,但我的图像可能具有不同的分辨率和颜色模式,因此无法与 SSIM-PIL 进行比较。

我的想法是将png图像转换为jpg,但是当我这样做时,所有背景都变成黑色,这导致之后的操作变得一团糟。

我知道 Pillow 有用于图像的方法convert() ,但是如果我将 RGBA 颜色模式图像转换为 RGB,背景会变黑。

请问有什么建议吗?

编辑

请停止说还有另一个类似的问题可能对我有帮助,因为它没有。

与其他人所说的类似,JPG 图像缺乏任何类型的渠道来促进透明度。 在不知道您拥有哪些图像以及您试图用它们完成什么的情况下,我建议将您的两个图像都转换为 PNG 图像,然后将它们都转换为 RGB numpy 数组,然后编写自己的差异函数来测量差异你要。 一个简单的例子可能是:

def pixel_difference(pixel_a, pixel_b):
    sum = 0
    for i in range(len(pixel_a)):
        sum += (pixel_a[i]-pixel_[b])**2 # Take square sum

    return sum**0.5 # Return square root

def two_image_difference(image_a, image_b):
    sum = 0
    for x in range(image_a.shape[0]):
        for y in range(image_a.shape[1]):
            sum += pixel_difference(image_a[x,y], image_b[x,y]) 

    return sum

如果您需要更高级的东西,您还可以研究图像互相关 希望这可以帮助!

尝试将您的 PNG 粘贴到白色背景上:

from PIL import Image
img = Image.open('your.png')
new_img = Image.new("RGBA", img.size, "WHITE") 
new_img.paste(img, (0, 0), img)            
new_img.convert('RGB').save('your.jpg', "JPEG")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM