Недавно я работаю над требованием сфотографироваться из базы данных, но на снимках есть белый фон, поэтому команда проекта надеется удалить белый фон изображения.
Эта статья делится с вами методом удаления белых фонов из картинок от Java для вашей ссылки. Конкретный контент заключается в следующем
Как показано на рисунке:
Конечно, это не видно по этому поводу. На самом деле, первая картина имеет белый фон, но вторая картина не делает. Я считаю, что вы понимаете, что я сказал, так как я должен реализовать этот код:
пакет com.wdg.util; импортировать java.awt.graphics2d; импортировать java.awt.image; Импорт java.awt.image.bufferedImage; импортировать java.io.bytearrayoutputstream; Импорт java.io.file; импортировать java.io.fileinputstream; импортировать java.io.inputstream; Импорт javax.imageio.imageio; Импорт javax.swing.imageicon; public class ImageUtil {public static void main (string [] args) {transperalpha (); } public static byte [] transperalpha () {bytearrayoutputstream bytearrayoutputstream = new BytearrayOutputStream (); File file = new File ("d: //08/11.png"); InputStream есть; try {is = new FileInputStream (file); // Если это тип MultipartFile, то он также имеет метод для преобразования его в поток: is = file.getInputStream (); BufferedImage bi = imageio.read (is); Изображение изображение = (изображение) Bi; ImageICon ImageICon = new ImageICon (Image); BufferedImage BufferedImage = new BufferedImage (imageicon.geticonWidth (), imageicon.geticOnheight (), bufferedimage.type_4byte_abgr); Graphics2d g2d = (graphics2d) bufferedimage.getgraphics (); g2d.drawimage (imageicon.getimage (), 0, 0, imageicon.getimageobserver ()); int alpha = 0; for (int j1 = bufferedimage.getminy (); j1 <bufferedimage.getheight (); J1 ++) {for (int j2 = bufferedimage.getminx (); j2 <bufferemage.getwidth (); j2 ++) {int rgb = bufferedimage.getrgb (j2, j1); int r = (rgb & 0xff0000) >> 16; int g = (rgb & 0xff000) >> 8; int b = (rgb & 0xff); if (((255 - r) <30) && ((255 - g) <30) && ((255 - b) <30)) {rgb = ((альфа + 1) << 24) | (RGB & 0x00ffffff); } bufferedImage.setrgb (J2, J1, RGB); }} g2d.drawimage (BufferedImage, 0, 0, imageicon.getimageObserver ()); ImageIo.Write (BufferedImage, "Png", новый файл ("d: //08//12.png")); // Прямой выходной файл} catch (Exception e) {e.printstacktrace (); } наконец {} вернуть bytearrayoutputstream.tobytearray (); }} Код работает на изображениях, и копирование их может напрямую реализовать ваши функции.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.