Как преобразовать белый фон изображения в прозрачный фон? Может ли кто-нибудь позвонить мне, как это сделать?Как преобразовать изображение в прозрачное изображение в java
2
A
ответ
4
Первый результат от Google заключается в следующем:
сделать цвет прозрачного http://www.rgagnon.com/javadetails/java-0265.html
Это делает Синюю часть изображения прозрачного, но я уверен, что вы можете адаптировать, что использовать белый intstead
(подсказка: Pass Color.WHITE
к функции makeColorTransparent
вместо Color.BLUE
)
Найдено более полное и современное отво er here: How to make a color transparent in a BufferedImage and save as PNG
0
Это мое решение. Этот фильтр удалит фон с любого изображения, если цвет фонового изображения находится в верхнем левом углу.
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;
}
}
В другом месте ...
ImageFilter bgFilter = new BackgroundFilter();
ImageProducer ip = new FilteredImageSource(image.getSource(), bgFilter);
image = Toolkit.getDefaultToolkit().createImage(ip);
1
Этот метод будет сделать фон прозрачным. Вам необходимо передать изображение, которое вы хотите изменить, цвет и терпимость.
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);
}
Смежные вопросы
- 1. Как преобразовать прозрачное изображение без палитры в изображение палитры?
- 2. Как сделать прозрачное изображение непрозрачным в Java?
- 3. Прозрачное изображение в QT
- 4. Прозрачное изображение в JavaScript
- 5. Изображение фона прозрачное GIMP
- 6. конвертировать jpeg изображение в прозрачное изображение png
- 7. Прозрачное изображение на другое изображение как зависание
- 8. Как преобразовать прозрачное изображение PNG в шестнадцатеричную строку?
- 9. Добавить прозрачное изображение в JLayeredPane
- 10. Создайте прозрачное изображение в opencv
- 11. Добавление фона в прозрачное изображение
- 12. HTML PNG-изображение прозрачное
- 13. Частично прозрачное фоновое изображение
- 14. Прозрачное фоновое изображение наверх
- 15. C# DataGridView - Прозрачное изображение
- 16. wxWidgets прозрачное фоновое изображение?
- 17. прозрачное изображение на странице
- 18. Анимированное прозрачное изображение GIF
- 19. Как сделать прозрачное изображение холста?
- 20. Как преобразовать изображение Ipl в изображение Mat в java
- 21. Как потрогать прозрачное изображение PNG в iPhone?
- 22. Как создать прозрачное растровое изображение в Direct2D
- 23. Как настроить прозрачное изображение png в iOS?
- 24. Как создать прозрачное изменяемое изображение в JavaME?
- 25. Как вставить прозрачное изображение в Flash-проект
- 26. Как использовать прозрачное изображение в WinCe 5.0?
- 27. Как сделать прозрачное изображение в j2me
- 28. Как добавить частично прозрачное изображение в Tkinter?
- 29. J2ME: преобразовать прозрачное изображение PNG в оттенки серого
- 30. Как преобразовать матрицу в изображение в java
+1 для подсказки. Мы не хотели бы путать SWDeveloper. –
Привет, спасибо за ответ ур, я пробовал этот код с белым, а не синим, но я не получаю прозрачное изображение, цвет фона изображения заполнен черным цветом. FYI - я не использовал апплет вместо этого, я использовал «ImageIO.write» и написал его как image.png, попробовал также с gif. – SWDeveloper
Нашли это также http://stackoverflow.com/questions/665406/how-to-make-a-color-transparent-in-a-bufferedimage-and-save-as-png –