下载本文示例代码
天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元 手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。 下面代码中用到的sourceImage是一个已经存在的Image对象 图像剪切 对于一个已经存在的Image对象,要得到它的一个局部图像,可以使用下面的步骤:
//import java.awt.*;//import java.awt.image.*;Image croppedImage;ImageFilter cropFilter;CropFilter =new CropImageFilter(25,30,75,75);//四个参数分别为图像起点坐标和宽高,即CropImageFilter(int x,int y,int width,int height),详细情况请参考APICroppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));//如果是在Component的子类中使用,可以将上面的Toolkit.getDefaultToolkit().去掉。//FilteredImageSource是一个ImageProducer对象。 图像缩放 对于一个已经存在的Image对象,得到它的一个缩放的Image对象可以使用Image的getScaledInstance方法:
Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT);//得到一个100X100的图像Image doubledImage=sourceImage. getScaledInstance(sourceImage.getWidth(this)*2,sourceImage.getHeight(this)*2, Image.SCALE_DEFAULT);//得到一个放大两倍的图像,这个程序一般在一个swing的组件中使用,而类Jcomponent实现了图像观察者接口ImageObserver,所有可以使用this。//其它情况请参考API。 灰度变换 下面的程序使用三种方法对一个彩色图像进行灰度变换,变换的效果都不一样。一般而言,灰度变换的算法是将象素的三个颜色分量使用R*0.3 G*0.59+B*0.11得到灰度值,然后将之赋值给红绿蓝,这样颜色取得的效果就是灰度的。另一种就是取红绿蓝三色中的最大值作为灰度值。java核心包也有一种算法,但是没有看源代码,不知道具体算法是什么样的,效果和上述不同。
/* GrayFilter.java*//*@author:cherami *//*email:cherami@163.net*/import java.awt.image.*;public class GrayFilter extends RGBImageFilter {int modelStyle;public GrayFilter() {modelStyle=GrayModel.CS_MAX;canFilterIndexColorModel=true;}public GrayFilter(int style) {modelStyle=style;canFilterIndexColorModel=true;}public void setColorModel(ColorModel cm) {if (modelStyle==GrayModel.CS_MAX) {substituteColorModel(cm,new GrayModel(cm));}else if (modelStyle==GrayModel.CS_FLOAT) {substituteColorModel(cm,new GrayModel(cm,modelStyle));}}public int filterRGB(int x,int y,int pixel) {return pixel;}}/* GrayModel.java*//*@author:cherami *//*email:cherami@163.net*/import java.awt.image.*;public class GrayModel extends ColorModel {public static final int CS_MAX=0;public static final int CS_FLOAT=1;ColorModel sourceModel;int modelStyle;public GrayModel(ColorModel sourceModel) {super(sourceModel.getPixelSize());this.sourceModel=sourceModel;modelStyle=0;}public GrayModel(ColorModel sourceModel,int style) {super(sourceModel.getPixelSize());this.sourceModel=sourceModel;modelStyle=style; }public void setGrayStyle(int style) {modelStyle=style;}protected int getGrayLevel(int pixel) {if (modelStyle==CS_MAX) {return Math.max(sourceModel.getRed(pixel),Math.max(sourceModel.getGreen(pixel),sourceModel.getBlue(pixel)));}else if (modelStyle==CS_FLOAT){return (int)(sourceModel.getRed(pixel)*0.3 sourceModel.getGreen(pixel)*0.59 sourceModel.getBlue(pixel)*0.11);}else {return 0;}}public int getAlpha(int pixel) {return sourceModel.getAlpha(pixel);}public int getRed(int pixel) {return getGrayLevel(pixel);}public int getGreen(int pixel) {return getGrayLevel(pixel);}public int getBlue(int pixel) {return getGrayLevel(pixel);}public int getRGB(int pixel) {int gray=getGrayLevel(pixel);return (getAlpha(pixel)<<24) (gray<<16) (gray<<8) gray;}} 如果你有自己的算法或者想取得特殊的效果,你可以修改类GrayModel的方法getGrayLevel()。共2页。 1 2 :
天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元 手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。 下面代码中用到的sourceImage是一个已经存在的Image对象 图像剪切 对于一个已经存在的Image对象,要得到它的一个局部图像,可以使用下面的步骤:
//import java.awt.*;//import java.awt.image.*;Image croppedImage;ImageFilter cropFilter;CropFilter =new CropImageFilter(25,30,75,75);//四个参数分别为图像起点坐标和宽高,即CropImageFilter(int x,int y,int width,int height),详细情况请参考APICroppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));//如果是在Component的子类中使用,可以将上面的Toolkit.getDefaultToolkit().去掉。//FilteredImageSource是一个ImageProducer对象。 图像缩放 对于一个已经存在的Image对象,得到它的一个缩放的Image对象可以使用Image的getScaledInstance方法:
Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT);//得到一个100X100的图像Image doubledImage=sourceImage. getScaledInstance(sourceImage.getWidth(this)*2,sourceImage.getHeight(this)*2, Image.SCALE_DEFAULT);//得到一个放大两倍的图像,这个程序一般在一个swing的组件中使用,而类Jcomponent实现了图像观察者接口ImageObserver,所有可以使用this。//其它情况请参考API。 灰度变换 下面的程序使用三种方法对一个彩色图像进行灰度变换,变换的效果都不一样。一般而言,灰度变换的算法是将象素的三个颜色分量使用R*0.3 G*0.59+B*0.11得到灰度值,然后将之赋值给红绿蓝,这样颜色取得的效果就是灰度的。另一种就是取红绿蓝三色中的最大值作为灰度值。java核心包也有一种算法,但是没有看源代码,不知道具体算法是什么样的,效果和上述不同。
/* GrayFilter.java*//*@author:cherami *//*email:cherami@163.net*/import java.awt.image.*;public class GrayFilter extends RGBImageFilter {int modelStyle;public GrayFilter() {modelStyle=GrayModel.CS_MAX;canFilterIndexColorModel=true;}public GrayFilter(int style) {modelStyle=style;canFilterIndexColorModel=true;}public void setColorModel(ColorModel cm) {if (modelStyle==GrayModel.CS_MAX) {substituteColorModel(cm,new GrayModel(cm));}else if (modelStyle==GrayModel.CS_FLOAT) {substituteColorModel(cm,new GrayModel(cm,modelStyle));}}public int filterRGB(int x,int y,int pixel) {return pixel;}}/* GrayModel.java*//*@author:cherami *//*email:cherami@163.net*/import java.awt.image.*;public class GrayModel extends ColorModel {public static final int CS_MAX=0;public static final int CS_FLOAT=1;ColorModel sourceModel;int modelStyle;public GrayModel(ColorModel sourceModel) {super(sourceModel.getPixelSize());this.sourceModel=sourceModel;modelStyle=0;}public GrayModel(ColorModel sourceModel,int style) {super(sourceModel.getPixelSize());this.sourceModel=sourceModel;modelStyle=style; }public void setGrayStyle(int style) {modelStyle=style;}protected int getGrayLevel(int pixel) {if (modelStyle==CS_MAX) {return Math.max(sourceModel.getRed(pixel),Math.max(sourceModel.getGreen(pixel),sourceModel.getBlue(pixel)));}else if (modelStyle==CS_FLOAT){return (int)(sourceModel.getRed(pixel)*0.3 sourceModel.getGreen(pixel)*0.59 sourceModel.getBlue(pixel)*0.11);}else {return 0;}}public int getAlpha(int pixel) {return sourceModel.getAlpha(pixel);}public int getRed(int pixel) {return getGrayLevel(pixel);}public int getGreen(int pixel) {return getGrayLevel(pixel);}public int getBlue(int pixel) {return getGrayLevel(pixel);}public int getRGB(int pixel) {int gray=getGrayLevel(pixel);return (getAlpha(pixel)<<24) (gray<<16) (gray<<8) gray;}} 如果你有自己的算法或者想取得特殊的效果,你可以修改类GrayModel的方法getGrayLevel()。共2页。 1 2 :
下载本文示例代码
Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧Java编程图像处理技巧
阅读(167) | 评论(0) | 转发(0) |