在java的GUI上放置图片,并在图片上输出半透明文字

原创 2003年01月13日 17:09:00

问此问题的人也不少,把以前做的代码拿出来整理为文档,希望对大家学习图片处理有帮助!
主要使用到的是java.awt.image.*包,继承RGBImageFilter类,对图片的像素进行alpha(透明度)进行修改,下面以applet为例:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.image.*;

public class applet6 extends Applet {
MediaTracker mt;
Image img=null;
Image im=null;
ImageFilter imgf=null;
FilteredImageSource fis=null;
public void init() {
  img=this.getImage(this.getCodeBase(),"d.jpg");
  mt=new MediaTracker(this);
  mt.addImage(img,0);
  try {
    mt.waitForAll(0);
  } catch(Exception ex) {System.err.println(ex.toString());}
  im=this.createImage(100,100);//建立新的图片,用于输入文字,以便接下来进行透明处理
  Graphics g2=im.getGraphics();
  g2.setFont(new Font("宋体",Font.BOLD,15));
  g2.drawString("半透明文字",10,50);
  imgf=new myImage(100,100,100);//调用自定义类进行对象构造
  fis=new FilteredImageSource(im.getSource(),imgf);//对图象的源(图象生产者)进行过滤处理,构造出FilteredImageSource对象实例
  im=this.createImage(fis);//通过FilteredImageSource实例生成Image
}

public void paint(Graphics g) {
g.drawImage(img,0,0,this);//画出图片
g.drawImage(im,100,100,this);//添加半透明文字
}
}

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

public int filterRGB(int x,int y,int rgb) {
DirectColorModel dcm=(DirectColorModel)ColorModel.getRGBdefault();
//DirectColorModel类用来将ARGB值独立分解出来
int red=dcm.getRed(rgb);
int green=dcm.getGreen(rgb);
int blue=dcm.getBlue(rgb);
if(red==255&&green==255&&blue==255)//如果像素为白色,则让它透明
  alpha=0;
return alpha<<24|red<<16|green<<8|blue;//进行标准ARGB输出以实现图象过滤
}
}

【转】关于Java生成背景透明的png图片

http://www.cnblogs.com/dotjava/archive/2008/09/04/1283963.html 关于Java生成背景透明的png图片 最近用到...
  • YunShuMingliao
  • YunShuMingliao
  • 2014年04月18日 09:21
  • 4142

Java中怎样保持PNG背景的透明属性(背景不变黑)

在使用Java绘制Png图象的时候,通常会遇到Png透明背景变得不透明的情况,如下例: import java.awt.*; import java.awt.image.*; import jav...
  • zixiaomuwu
  • zixiaomuwu
  • 2016年04月07日 00:39
  • 2040

Java调整图片大小合并PNG图片生成ICON(保持背景透明)

1.调整图片大小代码/** * * 功能描述: * 〈调整图像到固定大小〉 * * @param srcImageFile 源图像文件地址 * @param descImageFil...
  • RobertoHuang
  • RobertoHuang
  • 2017年05月09日 00:09
  • 1592

图片文字 点击效果半透明

  • 2014年06月19日 10:09
  • 1.15MB
  • 下载

鼠标经过图片半透明效果文字滑动显示

  • 2017年05月07日 16:04
  • 5KB
  • 下载

鼠标移上图片放大弹出文字半透明图层效果

首页
  • fengyu19880219
  • fengyu19880219
  • 2016年04月08日 22:43
  • 5088

看截图:给图片罩上一层半透明文字描述效果(二)DIV+CSS+SPAN

前面一篇例子是基本满足应用,有人会问能不能在调整一下?可能想:那个半透明文字能不能不要跟照片宽度一致,想在外面在套个容器,文字与容器宽度一致,图片在容器中居中显示;于是乎我也想到了这个问题,于是下班后...
  • chz_cslg
  • chz_cslg
  • 2013年08月07日 23:08
  • 2834

Java半透明图片实现的步骤及源代码源码整理

  • 2016年08月18日 15:55
  • 155KB
  • 下载

Gdi+绘制半透明文字并保存为透明背景图片

透明、半透明原理:看画刷的颜色,Color的第一个参数指定透明值,范围0-255,0全透明,255不透明 1.新建MFC工程,名为newtou 2.添加头文件 #include using...
  • wangkui1331
  • wangkui1331
  • 2018年01月09日 14:40
  • 32

Java半透明图片实现的步骤及源代码javalearnsa资料分享

  • 2016年11月08日 11:35
  • 155KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在java的GUI上放置图片,并在图片上输出半透明文字
举报原因:
原因补充:

(最多只允许输入30个字)