请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站
开启辅助访问 切换到宽版

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

切换风格 立即注册 找回密码

Java教程网

新浪微博达人勋

3418

积分

976

帖子

793

贡献

Rank: 8Rank: 8

积分
3418

社区QQ达人

发表于 2016-12-17 15:11:27 | 显示全部楼层 |阅读模式
代码如下
  1. try {
  2.     BufferedImage image = ImageIO
  3.       .read(new FileInputStream("f:\\1.jpg"));
  4.     // 读取图标

  5.     BufferedImage imageBiao = ImageIO.read(new FileInputStream(
  6.       "f:\\3.png"));
  7.     Graphics2D g = image.createGraphics();
  8.     // g.setColor(Color.YELLOW);
  9.     // g.setFont(new Font("华文中宋", Font.LAYOUT_LEFT_TO_RIGHT, 48));
  10.     // g.drawString("图像合成示例",100, image.getHeight() - 400);
  11.     // 写入图标
  12.     ImageFilter imgf = new MyFilter(255);
  13.     FilteredImageSource fis = new FilteredImageSource(imageBiao
  14.       .getSource(), imgf);
  15.     Image im = Toolkit.getDefaultToolkit().createImage(fis);
  16.     g.drawImage(im, 0, 0, imageBiao.getWidth(null), imageBiao
  17.       .getHeight(null), null);
  18.     g.dispose();
  19.     FileOutputStream out = new FileOutputStream("f:\\图标文字合成3.gif");
  20.     JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  21.     encoder.encode(image);
  22.     out.close();
  23.     // 把以上原图和加上图标后的图像

  24.    } catch (Exception e) {
  25.     e.printStackTrace();
  26.    }
  27. }
  28. }

  29. class MyFilter extends RGBImageFilter {// 抽象类RGBImageFilter是ImageFilter的子类,
  30.            // 继承它实现图象ARGB的处理
  31. int alpha = 0;
  32. public MyFilter(int alpha) {// 构造器,用来接收需要过滤图象的尺寸,以及透明度
  33.    this.canFilterIndexColorModel = true;
  34.    // TransparentImageFilter类继承自RGBImageFilter,它的构造函数要求传入原始图象的宽度和高度。
  35.    // 该类实现了filterRGB抽象函数
  36.    // ,缺省的方式下,该函数将x,y所标识的象素的ARGB值传入,程序员按照一定的程序逻辑处理后返回该象素新的ARGB值
  37.    this.alpha = alpha;
  38. }

  39. public int filterRGB(int x, int y, int rgb) {
  40.    DirectColorModel dcm = (DirectColorModel) ColorModel.getRGBdefault();
  41.    // DirectColorModel类用来将ARGB值独立分解出来
  42.    int red = dcm.getRed(rgb);
  43.    int green = dcm.getGreen(rgb);
  44.    int blue = dcm.getBlue(rgb);
  45.    int alp=dcm.getAlpha(rgb);

  46. if(red==255&&blue==255&&green==255){// 如果像素为白色,则让它透明
  47.     alpha = 0;
  48. }else{
  49.     alpha=255;
  50.    }
  51.    //if (alp==0) {//png和gif格式图片透明部分仍然透明
  52.    // alpha = 0;
  53. // }else{
  54. //   alpha = 255;
  55.    //}
  56.    return alpha << 24 | red << 16 | green << 8 | blue;// 进行标准ARGB输出以实现图象过滤
  57. }
复制代码



来自群组: java开发组

新浪微博达人勋

6858

积分

1740

帖子

1688

贡献

Rank: 8Rank: 8

积分
6858

社区QQ达人最佳新人活跃会员热心会员

发表于 2016-12-17 15:13:54 | 显示全部楼层
沙发位出租,有意请联系电话:13838384381

新浪微博达人勋

6612

积分

1653

帖子

1653

贡献

Rank: 8Rank: 8

积分
6612
发表于 2016-12-19 13:45:03 | 显示全部楼层
不错 支持下

新浪微博达人勋

6503

积分

1625

帖子

1626

贡献

Rank: 8Rank: 8

积分
6503
发表于 2016-12-19 21:52:22 | 显示全部楼层
路过 帮顶 嘿嘿

新浪微博达人勋

6572

积分

1640

帖子

1644

贡献

Rank: 8Rank: 8

积分
6572
发表于 2016-12-21 11:39:04 | 显示全部楼层
广告位,,坐下看看

新浪微博达人勋

6426

积分

1605

帖子

1607

贡献

Rank: 8Rank: 8

积分
6426

社区QQ达人

发表于 2017-1-3 16:44:06 | 显示全部楼层
路过的帮顶

新浪微博达人勋

6575

积分

1643

帖子

1644

贡献

Rank: 8Rank: 8

积分
6575
发表于 2017-1-26 17:14:11 | 显示全部楼层
无论是不是沙发都得回复下

新浪微博达人勋

3092

积分

773

帖子

773

贡献

Rank: 8Rank: 8

积分
3092

社区QQ达人

发表于 2017-2-12 23:17:59 | 显示全部楼层
秀起来~

新浪微博达人勋

2971

积分

746

帖子

739

贡献

Rank: 6Rank: 6

积分
2971

社区QQ达人

发表于 2017-2-13 14:20:19 | 显示全部楼层

新浪微博达人勋

6604

积分

1651

帖子

1651

贡献

Rank: 8Rank: 8

积分
6604
发表于 2017-2-14 16:18:20 | 显示全部楼层
珍爱生命,果断回帖。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋|手机版|Archiver|Java教程网    

GMT+8, 2019-5-27 19:21 , Processed in 0.359375 second(s), 46 queries .

Powered by Discuz X3.2

© 2001-2013 JAVA教程网

快速回复 返回顶部 返回列表