将白色背景图片变透明
来源:互联网 发布:中建七局华北公司知乎 编辑:程序博客网 时间:2024/05/17 08:12
--非常牛:
package test;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 stubtry {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;elsealpha = 255;rgb = (alpha << 24) | (rgb & 0x00ffffff);bufferedImage.setRGB(j2, j1, rgb);}}g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());// 生成图片为PNGString outFile = path.substring(0, path.lastIndexOf("."));ImageIO.write(bufferedImage, "png", new File(outFile + ".png"));} catch (IOException e) {// TODO Auto-generated catch blocke.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 stubString 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, "输入的数字有误!");}}}
0 0
- 将白色背景图片变透明
- 将白色背景图片变透明
- PS将android图标白色背景变透明
- 图片的白色背景变透明
- java 图片如何让白色变透明
- ps怎么把白色背景变透明
- PS 前端技能一 白色背景图片变为透明的图片
- java 将图片白色部分透明
- PS怎么让图的白色背景变透明?
- ps将logo变透明
- 使用imagick将图片背景变透明
- Qt将按钮变透明的方法
- ps制作玻璃效果(整体透明且上为白色半透明下为无色透明)的PNG格式背景图片
- 使用bitbltmasked去除图形白色区域,使之变透明(源代码)
- 如何用PS将gif图背景变透明
- iframe在IE下将白色背景设为透明色
- BMP图片反转(黑色变白色,白色变黑色)
- 白色边框透明加动画
- MFC picture控件中显示图片
- Oracle00-918:未明确定义列的错误
- HDOJ 4081 Qin Shi Huang's National Road System
- 安装和使用memcached
- (一):T-SQL语言分类、基本数据类型、定义变量及赋值
- 将白色背景图片变透明
- ConvertUtils.register注册Date转XMLGregorianCalendar的转换器
- 配置hadoop集群时,ssh无密码登陆设置(各个主机的用户名需要一样)
- Justep X5深度体验及点评(转载)
- 网站会记录并储存用户的搜索内容
- Jquery 浏览器页面窗口刷新或关闭时,执行后台方法(兼容各主流浏览器)
- oracle单行函数
- 基础冒泡排序
- Path Sum I、II