Même si je convertissais jpg en png avec python, je ne pouvais pas changer la transparence, donc je l'ai résolu de force
Si vous google "python convertit jpg en png", vous verrez Pillow.
Installez comme ci-dessous en regardant le fonctionnaire
pip install Pillow
Si vous écrivez un exemple en référence à ici
jpgToPNG.py
from PIL import Image
#Le pass absolu est également possible
img = Image.open('input.jpg')
img.save('output.png')
Avec cela, le PNG peut être créé, mais si vous écrivez une source qui modifie la transparence, vous obtiendrez une erreur. À propos, la transparence de l'image convertie à l'aide de la peinture peut être ajustée correctement.
Pendant un moment, si j'étais googlé en gémissant
Remarques sur la gestion des images png et jpg
Le site ci-dessus est un succès En effet, même si vous convertissez png en jpg, A de RGBA peut rester (est-il interprété correctement?), Donc c'est peut-être l'inverse.
Alors, créez une source à vérifier en vous référant au site ci-dessus
checkPNG.py
from PIL import Image
path_png1 = "output1.png " #La transparence ne peut pas être modifiée au format PNG
path_png2 = "output2.png " #Transparence PNG modifiable converti avec de la peinture
image = np.asarray(Image.open(path_png1))
print(Image.open(path_png1))
print(image.shape)
image = np.asarray(Image.open(path_png2))
print(Image.open(path_png2))
print(image.shape)
résultat
<PIL.PngImagePlugin.PngImageFile image mode=RGB size=1920x1080 at 0x1762DB300B8>
(1080, 1920, 3)
<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=1920x1080 at 0x176252F92B0>
(1080, 1920, 4)
Certes, les PNG qui ne peuvent pas être modifiés sont en mode RVB.
Maintenant que nous connaissons la cause, nous allons la résoudre.
Selon Notes sur la gestion des images png et jpg, vous pouvez changer le mode en ajoutant convert () après open ().
Alors, implémentez comme suit
jpgToPNG.py
from PIL import Image
rgba_img = Image.open('input.jpg').convert('RGBA')
rgba_img.save('output.png')
print(rgba_img)
print(np.asarray(rgba_img).shape)
résultat
<PIL.Image.Image image mode=RGBA size=1920x1080 at 0x1CF941EF9E8>
(1080, 1920, 4)
Il n'y a pas eu de problème avec le résultat et j'ai pu jouer avec la transparence en toute sécurité. c'est tout.
Recommended Posts