当前位置: 技术问答>java相关
如何对图片加入半透效果的文字?
来源: 互联网 发布时间:2017-05-01
本文导语: 原来我已经能够对图片写入一行文字,但是这样子会影响观看图片的效果,所以希望能够做到对图片加入半透明效果的文字,既让文字留在上边,又不会影响图片的观看效果,请教谁会,谢谢! | ...
原来我已经能够对图片写入一行文字,但是这样子会影响观看图片的效果,所以希望能够做到对图片加入半透明效果的文字,既让文字留在上边,又不会影响图片的观看效果,请教谁会,谢谢!
|
[原创]代码如下,记得结贴:
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);
im=this.createImage(fis);
}
public void paint(Graphics g) {
g.drawImage(img,0,0,this);
g.drawImage(im,100,100,this);
}
}
class myImage extends RGBImageFilter {
int width=0;
int height=0;
int alpha=0;
public myImage(int width,int height,int alpha) {
this.canFilterIndexColorModel=true;
this.width=width;
this.height=height;
this.alpha=alpha;
}
public int filterRGB(int x,int y,int rgb) {
DirectColorModel dcm=(DirectColorModel)ColorModel.getRGBdefault();
int red=dcm.getRed(rgb);
int green=dcm.getGreen(rgb);
int blue=dcm.getBlue(rgb);
if(red==255&&green==255&&blue==255)
alpha=0;
else {
System.out.println("red:"+red+"|green:"+green+"|blue:"+blue+"|alpha:"+alpha);
alpha=50;
}
return alpha
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);
im=this.createImage(fis);
}
public void paint(Graphics g) {
g.drawImage(img,0,0,this);
g.drawImage(im,100,100,this);
}
}
class myImage extends RGBImageFilter {
int width=0;
int height=0;
int alpha=0;
public myImage(int width,int height,int alpha) {
this.canFilterIndexColorModel=true;
this.width=width;
this.height=height;
this.alpha=alpha;
}
public int filterRGB(int x,int y,int rgb) {
DirectColorModel dcm=(DirectColorModel)ColorModel.getRGBdefault();
int red=dcm.getRed(rgb);
int green=dcm.getGreen(rgb);
int blue=dcm.getBlue(rgb);
if(red==255&&green==255&&blue==255)
alpha=0;
else {
System.out.println("red:"+red+"|green:"+green+"|blue:"+blue+"|alpha:"+alpha);
alpha=50;
}
return alpha
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!