网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Weblogic Server ant开发Web Ser.
.评论:Java应用热遍全球.
.应用Nokia UI API处理声音问题.
.学一个简单的JFreeChart使用方法.
.JDBC导论.
.Hibernate自关联关系.
.Java Socket编程(五) 简单的WE.
.在J2EE Web 应用中使用.
.JDK1.2关于JDBC中文问题的解决方.
.TSP递归程序的优化.
.重新温习数组.
.J2EE和XML为企业应用软件创造机会.
.初始化基础类.
.怎样在APPLET中发EMAIL.
.细述Java技术开发规则--中级篇.
.05年11月程序语言世界排行-Java居.
.软件操作界面设计须遵循的一些原.
.DOM4J 使用简介(转).
.一个中国人看JAVA.
.Java技术:使您轻松地进行多线程.

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

发表日期:2008-1-5



  主要使用到的是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<<24red<<16green<<8blue;//进行标准ARGB输出以实现图象过滤
}
}
上一篇:在jar包中动态载入第三方jar class问题 人气:1125
下一篇:用ANT构造Application 人气:916
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐