如何在GUI控件上放置圖片并在圖片上輸出半透明文字

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在GUI控件上放置圖片并在圖片上輸出半透明文字,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、做網(wǎng)站、汝城網(wǎng)絡(luò)推廣、微信小程序、汝城網(wǎng)絡(luò)營(yíng)銷(xiāo)、汝城企業(yè)策劃、汝城品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供汝城建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

主要使用到的是java.awt.image.*包,繼承RGBImageFilter類(lèi),對(duì)圖片的像素進(jìn)行alpha(透明度)進(jìn)行修改,下面以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);//建立新的圖片,用于輸入文字,以便接下來(lái)進(jìn)行透明處理
Graphics g2=im.getGraphics();
g2.setFont(new Font("宋體",Font.BOLD,15));
g2.drawString("半透明文字",10,50);
imgf=new myImage(100,100,100);//調(diào)用自定義類(lèi)進(jìn)行對(duì)象構(gòu)造
fis=new FilteredImageSource(im.getSource(),imgf);//對(duì)圖象的源(圖象生產(chǎn)者)進(jìn)行過(guò)濾處理,構(gòu)造出FilteredImageSource對(duì)象實(shí)例
im=this.createImage(fis);//通過(guò)FilteredImageSource實(shí)例生成Image
}

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

class myImage extends RGBImageFilter {//抽象類(lèi)RGBImageFilter是ImageFilter的子類(lèi),繼承它實(shí)現(xiàn)圖象ARGB的處理
int width=0;
int height=0;
int alpha=0;
public myImage(int width,int height,int alpha) {//構(gòu)造器,用來(lái)接收需要過(guò)濾圖象的尺寸,以及透明度
this.canFilterIndexColorModel=true;
//TransparentImageFilter類(lèi)繼承自RGBImageFilter,它的構(gòu)造函數(shù)要求傳入原始圖象的寬度和高度。該類(lèi)實(shí)現(xiàn)了filterRGB抽象函數(shù),缺省的方式下,該函數(shù)將x,y所標(biāo)識(shí)的象素的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類(lèi)用來(lái)將ARGB值獨(dú)立分解出來(lái)
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;//進(jìn)行標(biāo)準(zhǔn)ARGB輸出以實(shí)現(xiàn)圖象過(guò)濾
}
} [@more@]

上述就是小編為大家分享的如何在GUI控件上放置圖片并在圖片上輸出半透明文字了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前名稱(chēng):如何在GUI控件上放置圖片并在圖片上輸出半透明文字
地址分享:http://muchs.cn/article14/jpecde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、小程序開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)云服務(wù)器、面包屑導(dǎo)航、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司