Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-05-22 09:38:05 Frabriquer une image sur fond transparent

EricRG
membre
Lieu: Lorient
Date d'inscription: 2008-03-11
Messages: 171
Site web

Frabriquer une image sur fond transparent



Bonjour,

Je voudrais fabriquer un tout petit programme permettant de rendre transparent le fond d'une image.

L'idée est de mettre une couleur de fond sur une image avec un programme de graphisme (j'utilise imageJ), puis d'appliquer le petit programme en Processing pour transformer tous les pixels de la couleur du premier (en haut à gauche) en les remplaçant par du "transparent"

J'ai fait le petit programme suivant mais ça ne marche pas comme je voudrais.

j'ai mis la couleur : color(0,0,0,0) en pensant que le fait de mettre le alpha à zéro suffirait.

Je me demande où ça cloche !!!

(Dans l'exemple, j'utilise le format gif mais j'ai essayé avec le png et le résultat est le même !)

(merci pour votre aide smile  )

PImage inImage,outImage;
color couleur;
inImage=loadImage("in.gif");
outImage=inImage;
couleur=inImage.get(0,0);
for (int y=0;y<inImage.height;y++) {
  for (int x=0;x<inImage.width;x++) {
    if (inImage.get(x,y)==couleur) outImage.set(x,y,color(0,50));
  }
}
outImage.save("out.gif");
exit();

Dernière modification par EricRG (2014-05-22 09:42:28)


J'étudie Godot Engine. Mon site internet est : https://ericrogergarcia.legtux.org/

Hors ligne

 

#2 2014-05-22 11:51:12 Re : Frabriquer une image sur fond transparent

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Frabriquer une image sur fond transparent



Hello...

Je n'ai pas cherché à savoir pourquoi ton sketch ne marchait pas...
Mais en voici un qui marche... smile

Code (P5) :

PImage inImage, outImage;
color couleur;
inImage = loadImage("in.gif");
outImage = createImage(inImage.width, inImage.height, ARGB);

inImage.loadPixels();
couleur = inImage.pixels[0];

for (int y=0; y<inImage.width*inImage.height; y++) {
  outImage.pixels[y] = inImage.pixels[y];
  if (inImage.pixels[y]==couleur) outImage.pixels[y] = color (0, 0);
}
outImage.save("out.gif");
exit();

Bon courage...


L'Amour au Peuple !

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024