如何更改与不同图像对应的图像的颜色?

时间:2016-10-05 22:02:43

标签: java image loops colors rgb

所以我想问一下如何更改与不同图像对应的图像的颜色。

例如

从此图片中First Image

从红线向下,使用完全相同的颜色,我完全想要重新着色与第一张图像中的色阶相对应的图像,因此Second Image

与我在第一张图片中使用的颜色比例相同,因此我只能将第二张图像中的颜色保留在第一张图像颜色的红线上方。

我已经将此代码重写为不同的颜色。

public void createOutImmage(){
    imgout = new BufferedImage(imwidth, imheight, 1);
     for (int ix = 0; ix < imwidth; ix++){
         for (int iy = 0; iy < imheight; iy++){
             int rbval = img.getRGB(ix, iy);
             double hei = getHeight(rbval);
             if(hei > 50){
                 imgout.setRGB(ix, iy, rbval);
             }
             else {

我已将刻度上的每种颜色指定为不同的高度值

/*
 *  Getting  height from coded color (RGB)
 * 
 */
public double getHeight(int rgb){
    double hx =0.; 
    Color tcol = new Color(rgb);
    int ered =  tcol.getRed();
    int eblue =  tcol.getBlue();
    int egreen =  tcol.getGreen(); 
    if( ered > 248){    // range 180 -390 
        hx = 180.+210.*(258-(double)egreen)/255.; 
        return hx;
    }
    if(ered <= 248 && ered > 7){ //range  81 -180
        hx = 81.+ 99 * ((double)ered/250.);
    }
    if( ered <= 7 ){
      if(egreen >= 249 ) // using blue  value to calculate height
                         // range 23 -81
      {
         hx = 23. + 58. *((double)255 - eblue)/255.;


      }
      else               //using green to calculate height
      {

        hx =   24.* ((double)egreen-20.)/230.; 

      }


    }


    return hx;
}

}

并且“if(hei&gt; 50){”作为“hei”是颜色的相应高度,因为我可以更改该值,因此低于该值的任何颜色高度将自动变为紫色以模拟海上升等。

0 个答案:

没有答案