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

Java 如何更改与不同图像对应的图像的颜色?,java,image,loops,colors,rgb,Java,Image,Loops,Colors,Rgb,所以我想问一下,我怎样才能改变一幅图像的颜色,它对应于另一幅图像 比如说 从这张图上看, 从红线开始,使用完全相同的颜色,我完全想重新绘制与第一幅图像的颜色比例相对应的图像,所以 从我在第一张图像中使用的相同颜色比例,因此我只能将第二张图像中的颜色保持在第一张图像中颜色的红线上方 我已经有了这个代码,可以将图像改写为不同的颜色 public void createOutImmage(){ imgout = new BufferedImage(imwidth, imheight, 1);

所以我想问一下,我怎样才能改变一幅图像的颜色,它对应于另一幅图像

比如说

从这张图上看,

从红线开始,使用完全相同的颜色,我完全想重新绘制与第一幅图像的颜色比例相对应的图像,所以

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

我已经有了这个代码,可以将图像改写为不同的颜色

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 {
public void createOutImmage(){
imgout=新的缓冲区图像(imwidth,imheight,1);
对于(int-ix=0;ix50){
imgout.setRGB(ix,iy,rbval);
}
否则{
我已经为比例上的每种颜色指定了不同的高度值

/*
 *  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;
}
/*
*从编码颜色(RGB)获取高度
* 
*/
公共双倍高度(整数rgb){
双hx=0。;
颜色tcol=新颜色(rgb);
int=tcol.getRed();
int eblue=tcol.getBlue();
int-egreen=tcol.getGreen();
如果(ered>248){//范围180-390
hx=180.+210.*(258-(双)鹭鸶)/255。;
返回hx;
}
如果(7){//范围81-180
hx=81.+99*((双)倍/250.);
}
if(ered=249)//使用蓝色值计算高度
//范围23-81
{
hx=23.+58.*((双)255-eblue)/255。;
}
else//使用绿色计算高度
{
hx=24.*((双)白鹭-20.)/230。;
}
}
返回hx;
}
}

“if(hei>50){”作为“hei”是颜色的相应高度,因为我可以更改该值,因此低于该值的任何颜色高度都将自动更改为紫色,以模拟海平面上升等