java getcolormodel_Java ColorModel.getGreen方法代碼示例

import java.awt.image.ColorModel; //導入方法依賴的package包/類

public void renderChar(FontMetrics fontMetrics, BufferedImage image, char c, int safetyMargin) {

double[][] red = new double[image.getWidth()][image.getHeight()];

double[][] green = new double[image.getWidth()][image.getHeight()];

double[][] blue = new double[image.getWidth()][image.getHeight()];

double[][] alpha = new double[image.getWidth()][image.getHeight()];

ColorModel cm = image.getColorModel();

for(int x=kernel.getWidth()/2; x < image.getWidth()-kernel.getWidth()/2; x++) {

for(int y=kernel.getHeight()/2; y < image.getHeight()-kernel.getHeight()/2; y++) {

for(int j=0 ; j

for(int k=0; k

int rgb = image.getRGB(

x+j-kernel.getWidth()/2,

y+k-kernel.getHeight()/2);

double value = kernel.getValue(j, k);

red[x][y] += cm.getRed(rgb)*value;

green[x][y] += cm.getGreen(rgb)*value;

blue[x][y] += cm.getBlue(rgb)*value;

alpha[x][y] += cm.getAlpha(rgb)*value;

}

}

}

}

if(normalize) {

normalize(red, green, blue, alpha);

}

Graphics2D g = image.createGraphics();

Clear.clear(g, image.getWidth(), image.getHeight());

for(int x=0; x < image.getWidth(); x++) {

for(int y=0; y < image.getHeight(); y++) {

if(red[x][y] > 255) red[x][y] = 255;

if(green[x][y] > 255) green[x][y] = 255;

if(blue[x][y] > 255) blue[x][y] = 255;

if(alpha[x][y] > 255) alpha[x][y] = 255;

if(red[x][y] < 0) red[x][y] = 0;

if(green[x][y] < 0) green[x][y] = 0;

if(blue[x][y] < 0) blue[x][y] = 0;

if(alpha[x][y] < 0) alpha[x][y] = 0;

// @todo optimize drawing the image with image.setRGB #

Color color = new Color((int)red[x][y], (int)green[x][y], (int)blue[x][y], (int)alpha[x][y]);

g.setColor(color);

g.drawLine(x, y, x, y);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值