Comment convertir un fond blanc d'une image en arrière-plan transparent? Quelqu'un peut-il me dire comment faire cela?Comment convertir une image en une image transparente en Java
2
A
Répondre
4
Le premier résultat de Google est la suivante:
Faire une couleur transparente http://www.rgagnon.com/javadetails/java-0265.html
Il fait la partie bleue d'une image transparente, mais je suis sûr que vous pouvez adapter qu'utiliser blanc intstead
(indice: Passez Color.WHITE
à la fonction makeColorTransparent
, au lieu de Color.BLUE
)
Trouvé un rép plus complet et moderne ici: How to make a color transparent in a BufferedImage and save as PNG
0
Voici ma solution. Ce filtre supprime l'arrière-plan de n'importe quelle image tant que la couleur de l'image d'arrière-plan est dans le coin supérieur gauche.
private static class BackgroundFilter extends RGBImageFilter{
boolean setUp = false;
int bgColor;
@Override
public int filterRGB(int x, int y, int rgb) {
int colorWOAlpha = rgb & 0xFFFFFF;
if(! setUp && x == 0 && y == 0){
bgColor = colorWOAlpha;
setUp = true;
}
else if(colorWOAlpha == bgColor)
return colorWOAlpha;
return rgb;
}
}
Ailleurs ...
ImageFilter bgFilter = new BackgroundFilter();
ImageProducer ip = new FilteredImageSource(image.getSource(), bgFilter);
image = Toolkit.getDefaultToolkit().createImage(ip);
1
Cette méthode fera fond transparent. Vous devez transmettre l'image que vous souhaitez modifier, la couleur et la tolérance.
final int color = ret.getRGB(0, 0);
final Image imageWithTransparency = makeColorTransparent(ret, new Color(color), 10);
final BufferedImage transparentImage = imageToBufferedImage(imageWithTransparency);
private static BufferedImage imageToBufferedImage(final Image image) {
final BufferedImage bufferedImage =
new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
final Graphics2D g2 = bufferedImage.createGraphics();
g2.drawImage(image, 0, 0, null);
g2.dispose();
return bufferedImage;
}
private static Image makeColorTransparent(final BufferedImage im, final Color color, int tolerance) {
int temp = 0;
if (tolerance < 0 || tolerance > 100) {
System.err.println("The tolerance is a percentage, so the value has to be between 0 and 100.");
temp = 0;
} else {
temp = tolerance * (0xFF000000 | 0xFF000000)/100;
}
final int toleranceRGB = Math.abs(temp);
final ImageFilter filter = new RGBImageFilter() {
// The color we are looking for (white)... Alpha bits are set to opaque
public int markerRGBFrom = (color.getRGB() | 0xFF000000) - toleranceRGB;
public int markerRGBTo = (color.getRGB() | 0xFF000000) + toleranceRGB;
public final int filterRGB(final int x, final int y, final int rgb) {
if ((rgb | 0xFF000000) >= markerRGBFrom && (rgb | 0xFF000000) <= markerRGBTo) {
// Mark the alpha bits as zero - transparent
return 0x00FFFFFF & rgb;
} else {
// Nothing to do
return rgb;
}
}
};
final ImageProducer ip = new FilteredImageSource(im.getSource(), filter);
return Toolkit.getDefaultToolkit().createImage(ip);
}
Questions connexes
- 1. comment faire une image transparente en j2me
- 2. J2ME: Convertir une image PNG transparente en niveaux de gris
- 3. comment convertir une image gif en jpg?
- 4. Convertir une image en XAML?
- 5. comment convertir une image bitmap en image CIELab?
- 6. Comment convertir une image Pyglet en image PIL?
- 7. Comment convertir une image Java en un tableau JPEG d'octets?
- 8. comment convertir une image en tableau d'octets dans Java?
- 9. Comment convertir une page Web en image?
- 10. Comment convertir une image en données iphone
- 11. comment convertir le spectrogramme en une image
- 12. Convertir une page HTML en une image
- 13. Conversion d'une image 32bpp en une image 16bpp en Java
- 14. Comment créer une image à partir d'une image transparente?
- 15. convertir le texte en une image
- 16. Conversion d'une image en une image JPG
- 17. comment dessiner une image au-dessus d'une image transparente en utilisant CoreGraphics
- 18. Faire une image superposée transparente sur Android?
- 19. Comment convertir une image en une représentation ASCII de l'image?
- 20. Code vb.net pour rendre une image transparente
- 21. Convertir une image en une matrice en python
- 22. Comment convertir une page web en image en utilisant MATLAB?
- 23. comment convertir un tableau d'octets en image en Java?
- 24. Utilisation de Graphics.copyArea avec une image transparente
- 25. WPF Curseur sur une image partiellement transparente
- 26. Comment convertir nsdata en image?
- 27. Comment rendre une image aussi transparente dans BlackBerry?
- 28. Image transparente dans QT
- 29. créer une image buffered clairsemée en Java
- 30. image transparente dans page
+1 pour l'indice. Nous ne voudrions pas confondre SWDeveloper. –
Salut tim, merci pour votre réponse, j'ai essayé ce code avec du blanc au lieu de bleu, mais je ne reçois pas une image transparente, la couleur de fond de l'image est remplie de couleur noire. FYI - Je n'ai pas utilisé l'applet à la place j'ai utilisé "ImageIO.write" et l'ai écrit comme image.png, essayé avec gif aussi. – SWDeveloper
Trouvé cela aussi bien http://stackoverflow.com/questions/665406/how-to-make-a-color-transparent-in-a-bufferedimage-and-save-as-png –