网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  在gui控件上放置图片,并在图片上输出半透明文字     
  文章作者:未知  文章来源:水木森林  
  查看:90次  录入:管理员--2007-11-17  
 
  主要使用到的是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输出以实现图象过滤
}
}
 
 
上一篇: 在applet中实现事件向应    下一篇: 在jar包中动态载入第三方jar class问题
  相关文档
java使用ant来编译 11-16
深入对比分析--javabean与ejb的不同 12-11
java篇:ejb 3.0开发指南之依赖注入 11-16
根据midlet套件(jar文件)自动生成jad文件 11-17
line 属性 11-16
j2ee-开放的、基于标准的开发和部署的平台 11-17
javamail 发送附件的例子 11-17
用javabean实现文件上载(一)请求分析 11-16
创造一种迅速而又随性的(quick and dirty)xml解释器 11-17
创建并解析xml文件java实例 11-17
netbeans ide 4.1 快速入门指南(1) 11-17
java开发技巧:对jar包进行再次修改 11-16
java性能的优化(下)(转) 11-17
java实时多任务调度过程中安全监控设计 11-16
用java实现print screen,读取位图文件,将位图文件转化位jpeg.. 11-17
borland jbuilder2006加速java应用开发 11-17
懂得何时重用已有异常 11-17
基于beehive,ejb3.0开发客户反馈系统 11-17
j2se综合:介绍一个解析日期格式的方法 02-29
eclipse中插件开发之sqlexplorer 11-16
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息