في الآونة الأخيرة ، أعمل على شرط لالتقاط صور من قاعدة البيانات ، لكن الصور لها خلفية بيضاء ، لذلك يأمل فريق المشروع في إزالة الخلفية البيضاء للصورة.
تشاركك هذه المقالة في طريقة إزالة الخلفيات البيضاء من الصور بواسطة 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 ؛ الفئة العامة ImageUtil {public static void main (string [] args) {transferalpha () ؛ } بايت ثابت عام [] transferalpha () {bytearrayoutputStream bytearRayoutPutStream = جديد bytearrayoutputstream () ؛ ملف الملف = ملف جديد ("d: //08//11.png") ؛ InputStream هو ؛ حاول {iS = جديد fileInputStream (ملف) ؛ // إذا كان نوعًا متعددًا ، فإنه يحتوي أيضًا على طريقة لتحويله إلى دفق: is = file.getInputStream () ؛ BufferedImage BI = Imageio.Read (IS) ؛ صورة الصورة = (الصورة) ثنائية ؛ ImageIcon ImageIcon = new ImageIcon (Image) ؛ bufferedImage BufferedImage = جديد 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 ؛ لـ (int j1 = bufferedImage.getMiny () ؛ J1 <bufferedImage.getheight () ؛ J1 ++) {for (int j2 = bufferedimage.getminx () ؛ j2 <bufferedimage.getwidth () ؛ j2 ++) {int rgb = bufferedimage.getrgb ( 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 = ((alpha + 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 (استثناء e) {eprintstacktrace () ؛ } أخيرًا {} return bytearrayoutputstream.tobytearray () ؛ }} يعمل الرمز على الصور ، ويمكن أن يؤدي نسخها إلى تنفيذ وظائفك مباشرة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.