0

当我尝试在 GIMP 中使用 python-fu 保存图像时,图片在我必须使用的另一个软件(pivview)中无法正确显示。

当我手动导出图片时,未选中颜色模式上方的所有框,16bpc RGB,压缩级别 5,未选中 IPTC 数据,并选中压缩下方的其他框,图片显示正确。
我必须使用的软件中的图片每 4 个像素左右都有所有的白色列。使用 windows 照片,图片显示正确。

图片为 16bit uint 灰度。

在 python-fu 控制台中,我尝试了:

savedir = 'C:/Users/slowmoetion/Desktop'
fname = 'picture'
point1 = [1555,775]
point2 = [300,550]
img = gimp.image_list()[0]
layer_one = gimp.Layer(img,'dodge',img.width,img.height,GREY_IMAGE)
layer_one.mode = DODGE_MODE
img.add_layer(layer_one,0)
pdb.gimp_drawable_edit_gradient_fill(layer_one,0,0,True,5,3,True,point1[0],point1[1],point2[0],point2[1])
new_img = pdb.gimp_image_duplicate(img)
layer = pdb.gimp_image_merge_visible_layers(new_img, CLIP_TO_IMAGE)
new_img=pdb.gimp_image_convert_rgb(new_img) #didn't help
pdb.file_png_save2(new_img,new_img.layers[0],savedir+'/'+fname+'_1.png',fname+'_1.png',False,5,False,False,False,False,False,False,False)

我还尝试将最后一个切换FalseTrue和其他一些开关,但我没有想法......
使用 tiff 没有帮助,打开导出的文件时 pivview 崩溃。也许这里有人知道我可以尝试什么?

非常感谢!

4

1 回答 1

0

当图片为 16bpc(或浮点格式更好)时,Gimp 默认将其保存为 16bpc PNG,这是一个相当新的变体(或至少不像 8bpc 那样被广泛支持)。所以我的第一个实验是在 Gimp 中手动导出图像并在 PNG 保存对话框中强制使用 16bpc 和 8bpc 格式,并查看 16bpc 格式是否在您的查看应用程序中引发相同的行为,而 8bpc 显示正确。

如果是这样,您必须导出 8bpc PNG。据我所知,没有办法明确设置 PNG 位数,但file_png_save()对图像精度很敏感,因此您可以通过在导出前更改图像精度(在图像本身或副本上)来导出 8bpc PNG。

想一想,也可能是灰度支持的问题,可以用类似的方式检查和修复。

于 2021-01-06T17:27:13.030 回答