当前位置:首页 » 操作系统 » 图片变灰源码

图片变灰源码

发布时间: 2023-05-26 01:52:44

java程序将彩色png图片转为黑白的

帮你搜了一段网上流行的代码:

灰度变换
下面的程序使用三种方法对一个彩色图像进行灰度变换,变换的效果都不一样。一般而言,灰度变换的算法是将象素的三个颜色分量使用R*0.3+G*0.59+B*0.11得到灰度值,然后将之赋值给红绿蓝,这样颜色取得的效果就是灰度的。另一种就是取红绿蓝三色中的最大值作为灰度值。java核心包也有一种算法,但是没有看源代码,不知道具体算法是什么样的,效果和上述不同。

/* GrayFilter.java*/
/*@author:cherami */
/*email:[email protected]*/
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
else if (modelStyle==GrayModel
}
public int filterRGB(int x,int y,int pixel) {
return pixel;
}
}

/* GrayModel.java*/
/*@author:cherami */
/*email:[email protected]*/
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;
}
}

㈡ 类似腾讯空间好友相片点击放大,可以旋转、关闭、查看上、下一张图片,图片在放大的时候背景变灰源代码

网络一下:LightBox

热点内容
联想服务器的bmc叫什么 发布:2025-07-04 20:52:29 浏览:816
三星手机如何建文件夹 发布:2025-07-04 20:42:34 浏览:475
苹果11的摄像头是什么配置 发布:2025-07-04 20:32:20 浏览:59
plc编程入门视频 发布:2025-07-04 20:26:02 浏览:927
小米电视设置界面密码是多少 发布:2025-07-04 20:26:01 浏览:989
linux软件测试 发布:2025-07-04 20:12:40 浏览:274
小数加减法计算法则 发布:2025-07-04 20:11:49 浏览:691
文件如何定时上传至服务器 发布:2025-07-04 20:06:17 浏览:861
菜鸟商城源码 发布:2025-07-04 20:01:31 浏览:446
英雄联盟头像文件夹 发布:2025-07-04 19:49:59 浏览:580