2010-10-08 8 views
0

Quelle est la meilleure façon de savoir si un PNG a de la transparence ou non dans Ruby? Est-ce que je peux vérifier s'il y a un canal alpha? Si oui: Comment vérifier une chaîne alpha?Ruby: Trouver PNG non transparent et convertir en JPG

J'écris un script qui convertira tous les PNG sans transparence en plus petits JPG.

Merci beaucoup pour votre aide!

MISE À JOUR: En attendant, j'ai écrit ce script et vous pouvez le trouver à Github.

+1

Vous ne savez qu'un JPEG ist pas nécessairement plus petit qu'un PNG, ne pas vous? Cela dépend bien sûr de la compression JPEG, mais le rapport qualité/taille moyen pour les fichiers PNG est bien meilleur pour les graphiques web, à mon humble avis. – fresskoma

Répondre

3

La vérification de la couche alpha semble la chose la plus sensée à faire. Est-il prudent de supposer que vous utilisez RMagick? avez-vous lu la documentation?

>> require 'RMagick' 
>> image = Magick::Image.read("a.png").first 
>> image.alpha? 
=> true 

http://www.imagemagick.org/RMagick/doc/image1.html#alpha_q

+0

Merci pour l'indice et le lien! Dans mon cas, il semble que tous les PNG ont un canal alpha. Excusez ma question boiteuse, mais est-il possible d'avoir un PNG non transparent et avoir toujours un canal alpha? Cela signifierait que la vérification d'un canal alpha n'est pas suffisante dans mon cas. – Javier

+0

vous pouvez lier cette image spéciale dans la question. – tokland

+1

Vérifiez le lien que j'ai posté sur mon script. Votre suggestion ne fonctionne pas, car tous les fichiers PNG ont un canal alpha. AFAIK: La valeur du canal alpha définit la transparence, pas son existence. – Javier

Questions connexes