「java图片透明」java图片透明度

博主:adminadmin 2023-01-05 20:36:08 669

今天给各位分享java图片透明的知识,其中也会对java图片透明度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中怎么设背景图片透明

java不能设背景图片透明,除非连窗体一起透明了。

背景图片透明了,还要背景图片干啥?

还是说背景图片周围有一些不想要的颜色?

这个只能处理图片,把需要的颜色留下,不需要的颜色删除就行了。

java 图片如何让白色变透明

代码:

package com.picture;  

  

import java.awt.Graphics2D;  

import java.awt.image.BufferedImage;  

import java.io.File;  

import java.io.IOException;  

import java.util.regex.Pattern;  

  

import javax.imageio.ImageIO;  

import javax.swing.ImageIcon;  

import javax.swing.JOptionPane;  

  

public class Picture {  

  

    public static void convert(String path) {  

        // TODO Auto-generated constructor stub  

        try {  

            BufferedImage image = ImageIO.read(new File(path));  

            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  bufferedImage  

                        .getWidth(); j2++) {  

                    int rgb = bufferedImage.getRGB(j2, j1);  

                    if (colorInRange(rgb))  

                        alpha = 0;  

                    else  

                        alpha = 255;  

                    rgb = (alpha  24) | (rgb  0x00ffffff);  

                    bufferedImage.setRGB(j2, j1, rgb);  

                }  

            }  

            g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());  

            // 生成图片为PNG  

            String outFile = path.substring(0, path.lastIndexOf("."));  

            ImageIO.write(bufferedImage, "png", new File(outFile + ".png"));  

        } catch (IOException e) {  

            // TODO Auto-generated catch block  

            e.printStackTrace();  

        }  

    }  

  

    public static boolean colorInRange(int color) {  

        int red = (color  0xff0000)  16;  

        int green = (color  0x00ff00)  8;  

        int blue = (color  0x0000ff);  

        if (red = color_range  green = color_range  blue = color_range)  

            return true;  

        return false;  

    }  

  

    public static int color_range = 210;  

    public static Pattern pattern = Pattern.compile("[0-9]*");  

  

    public static boolean isNo(String str) {  

        return pattern.matcher(str).matches();  

    }  

  

    /** 

     * @param args 

     */  

    public static void main(String[] args) {  

        // TODO Auto-generated method stub  

        String path = JOptionPane.showInputDialog(null, "请输入图片目录");  

        if (path == null || !new File(path).isDirectory()) {  

            JOptionPane.showMessageDialog(null, "输入目录有误!");  

            return;  

        }  

        String color = JOptionPane.showInputDialog(null, "请输入色差范围0~255(建议10~50)");  

        if (isNo(color)) {  

            color_range = 255 - Integer.parseInt(color);  

            File file = new File(path);  

            String[] files = file.list();  

            for (int i = 0; i  files.length; i++) {  

                String ext = files[i].substring(files[i].lastIndexOf(".") + 1);  

                if (ext.equals("jpg")) {  

                    convert(path + "//" + files[i]);  

                }  

            }  

            JOptionPane.showMessageDialog(null, "转换完成!");  

        } else {  

            JOptionPane.showMessageDialog(null, "输入的数字有误!");  

        }  

    }  

  

}

Java中设置背景图片透明的是哪个方法?

要在JFrame上添加背景图片,常见做法是加在layeredPane上面,并将contentPane设置成透明的即可。

// 将图片添加到layeredPane

ImageIcon img = new ImageIcon("steve.jpg");

JLabel imgLabel = new JLabel(img);

frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));

imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());

// 将contentPane设置成透明的

关于java图片透明和java图片透明度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。