ad_qqread_mid_big">
色彩变换
根据上面的原理,我们也可以实现色彩变换,这样的效果就很多了。下面是一个反转变换的例子:
要想取得自己的效果,需要修改reversecolormodel.java中的三个方法,getred、getgreen、getblue。
下面是上面的效果的一个总的演示程序。
>>>更多专题请看java的类 java网络专题
色彩变换
根据上面的原理,我们也可以实现色彩变换,这样的效果就很多了。下面是一个反转变换的例子:
| /* reversecolormodel.java*/ /*@author:cherami */ /*email:cherami@163.net*/ import java.awt.image.*; public class reversecolormodel extends colormodel { colormodel sourcemodel; public reversecolormodel(colormodel sourcemodel) { super(sourcemodel.getpixelsize()); this.sourcemodel=sourcemodel; } public int getalpha(int pixel) { return sourcemodel.getalpha(pixel); } public int getred(int pixel) { return ~sourcemodel.getred(pixel); } public int getgreen(int pixel) { return ~sourcemodel.getgreen(pixel); } public int getblue(int pixel) { return ~sourcemodel.getblue(pixel); } public int getrgb(int pixel) { return (getalpha(pixel)<<24)+(getred(pixel)<<16)+(getgreen(pixel)<<8)+getblue(pixel); } } /* reversecolormodel.java*/ /*@author:cherami */ /*email:cherami@163.net*/ import java.awt.image.*; public class reversefilter extends rgbimagefilter { public reversefilter() { canfilterindexcolormodel=true; } public void setcolormodel(colormodel cm) { substitutecolormodel(cm,new reversecolormodel(cm)); } public int filterrgb(int x,int y,int pixel) { return pixel; } } |
要想取得自己的效果,需要修改reversecolormodel.java中的三个方法,getred、getgreen、getblue。
下面是上面的效果的一个总的演示程序。
| /*grayimage.java*/ /*@author:cherami */ /*email:cherami@163.net*/ import java.awt.*; import java.awt.image.*; import javax.swing.*; import java.awt.color.*; public class grayimage extends jframe{ image source,gray,gray3,clip,bigimg; bufferedimage bimg,gray2; grayfilter filter,filter2; imageicon ii; imagefilter cropfilter; int iw,ih; public grayimage() { ii=new imageicon("images/11.gif"); source=ii.getimage(); iw=source.getwidth(this); ih=source.getheight(this); filter=new grayfilter(); filter2=new grayfilter(graymodel.cs_float); gray=createimage(new filteredimagesource(source.getsource(),filter)); gray3=createimage(new filteredimagesource(source.getsource(),filter2)); cropfilter=new cropimagefilter(5,5,iw-5,ih-5); clip=createimage(new filteredimagesource(source.getsource(),cropfilter)); bigimg=source.getscaledinstance(iw*2,ih*2,image.scale_default); mediatracker mt=new mediatracker(this); mt.addimage(gray,0); try { mt.waitforall(); } catch (exception e) { } } public void paint(graphics g) { graphics2d g2=(graphics2d)g; bimg=new bufferedimage(iw, ih, bufferedimage.type_int_rgb); graphics2d srcg = bimg.creategraphics(); renderinghints rhs = g2.getrenderinghints(); srcg.setrenderinghints(rhs); srcg.drawimage(source, 0, 0, null); colorspace grayspace=colorspace.getinstance(colorspace.cs_gray); colorconvertop op=new colorconvertop(grayspace,rhs); gray2=new bufferedimage(iw, ih, bufferedimage.type_int_rgb); op.filter(bimg,gray2); g2.drawimage(source,40,40,this); g2.drawimage(gray,80,40,this); g2.drawimage(gray2,120,40,this); g2.drawimage(gray3,160,40,this); g2.drawimage(clip,40,80,this); g2.drawimage(bigimg,80,80,this); } public void update(graphics g) { paint(g); } public static void main(string args[]) { grayimage m=new grayimage(); m.setsize(400,400); m.setvisible(true); } } |
| 上一页 1 2 |
| 相关内容:效果 图像处理 色彩 技巧 java |
| 【收藏此页】【大 中 小】【打印】【关闭】 | |
| 上一篇:java中文档对象模型dom经验小结 下一篇:java技巧:列表排序 10万个软件免费高速下载 | |
| ||||||||||||||
|
|
-
关于我们
公司介绍 最新动态 联系我们 -
产品与服务
域名注册 jsp空间 php空间 -
常见问题
空间操作手册 网站备案相关 退款相关问题 -
技术支持
技术 QQ :178966803 联系电话:13616026886 联系邮箱:fjjsp@vip.163.com
扫描关注微信公众号
闽公网安备 35060202000074号