java中怎么把贴图背景改为透明
展开全部
你试一下设置opacity属性。这个是透明度的属性。
追问
可以说详细一点吗?比如你贴图用的哪个函数?谢谢
追答
我没有在Java中做过,我是用JSP或者HTML来做的UI,在这里面设置一个图片或者对象的透明度就是设置它的opacity属性。
透明度设置为半透明。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Swing最新特性:增加透明窗体及不规则窗体功能
透明窗体:
public class TranslucentWindow extends JFrame {
public TranslucentWindow() {
super("透明窗体");
this.setLayout(new FlowLayout());
this.add(new JButton("按钮"));
this.add(new JCheckBox("复选按钮"));
this.add(new JRadioButton("单选按钮"));
this.add(new JProgressBar(20, 100));
this.setSize(new Dimension(400, 300));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Window w = new TranslucentWindow();
w.setVisible(true);
com.sun.awt.AWTUtilities.setWindowOpacity(w, 0.6f);
}
});
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个问的是网站还是swing啊
追问
是swing,在窗口上贴一张图片,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 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, "输入的数字有误!"); } }
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询