我们强烈建议你在下面的帖子中提及此内容。
- Java中的图像处理S1(读和写)
- Java中的图像处理S2(获取并设置像素)
基本思想是获取每个坐标的像素值, 然后保持所需的结果彩色像素值相同, 并将其他两个像素值设置为零。
转换为红色图像
算法
用于将彩色图像转换为红色:
- 获取像素的RGB值。
- 如下设置RGB值:
- R:不变
- G:设为0
- B:设为0
- 将像素的R, G和B值替换为步骤2中计算出的值。
- 对图像的每个像素重复步骤1到步骤3。
//Java program to demonstrate colored to red colored image conversion
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class RedImage
{
public static void main(String args[]) throws IOException
{
BufferedImage img = null ;
File f = null ;
//read image
try
{
f = new File( "G:\\Inp.jpg" );
img = ImageIO.read(f);
}
catch (IOException e)
{
System.out.println(e);
}//get width and height
int width = img.getWidth();
int height = img.getHeight();
//convert to red image
for ( int y = 0 ;
y <
height;
y++)
{
for ( int x = 0 ;
x <
width;
x++)
{
int p = img.getRGB(x, y);
int a = (p>
>
24 )&
0xff ;
int r = (p>
>
16 )&
0xff ;
//set new RGB
//keeping the r value same as in original
//image and setting g and b as 0.
p = (a<
<
24 ) | (r<
<
16 ) | ( 0 <
<
8 ) | 0 ;
img.setRGB(x, y, p);
}
}//write image
try
{
f = new File( "G:\\Out.jpg" );
ImageIO.write(img, "jpg" , f);
}
catch (IOException e)
{
System.out.println(e);
}
}
}
注意:该代码无法在在线IDE上运行, 因为它需要磁盘上的映像。
输出如下:
Inp.jpgOup.jpg
转换为绿色图像
Algotithm
用于将彩色图像转换为绿色:
- 获取像素的RGB值。
- 如下设置RGB值:
- R:设为0
- G:不变
- B:设为0
- 将像素的R, G和B值替换为步骤2中计算出的值。
- 对图像的每个像素重复步骤1到步骤3。
以上算法的:
//Java program to demonstrate colored to green coloured
//image conversion
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class GreenImage
{
public static void main(String args[]) throws IOException
{
BufferedImage img = null ;
File f = null ;
//read image
try
{
f = new File( "G:\\Inp.jpg" );
img = ImageIO.read(f);
}
catch (IOException e)
{
System.out.println(e);
}//get width and height
int width = img.getWidth();
int height = img.getHeight();
//convert to green image
for ( int y = 0 ;
y <
height;
y++)
{
for ( int x = 0 ;
x <
width;
x++)
{
int p = img.getRGB(x, y);
int a = (p>
>
24 )&
0xff ;
int g = (p>
>
8 )&
0xff ;
//set new RGB
//keeping the g value same as in original
//image and setting r and b as 0.
p = (a<
<
24 ) | ( 0 <
<
16 ) | (g<
<
8 ) | 0 ;
img.setRGB(x, y, p);
}
}//write image
try
{
f = new File( "G:\\Out.jpg" );
ImageIO.write(img, "jpg" , f);
}
catch (IOException e)
{
System.out.println(e);
}
}
}
注意:该代码无法在在线IDE上运行, 因为它需要磁盘上的映像。
输出如下:
Inp.jpgOup.jpg
转换为蓝色图像
算法
用于将彩色图像转换为蓝色:
- 获取像素的RGB值。
- 如下设置RGB值:
- R:设为0
- G:设为0
- B:没有变化
- 将像素的R, G和B值替换为步骤2中计算出的值。
- 对图像的每个像素重复步骤1到步骤3。
以上算法的:
//Java program to demonstrate colored to blue coloured image conversion
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class BlueImage
{
public static void main(String args[]) throws IOException
{
BufferedImage img = null ;
File f = null ;
//read image
try
{
f = new File( "G:\\Inp.jpg" );
img = ImageIO.read(f);
}
catch (IOException e)
{
System.out.println(e);
}//get width and height
int width = img.getWidth();
int height = img.getHeight();
//convert to blue image
for ( int y = 0 ;
y <
height;
y++)
{
for ( int x = 0 ;
x <
width;
x++)
{
int p = img.getRGB(x, y);
int a = (p>
>
24 )&
0xff ;
int b = p&
0xff ;
//set new RGB
//keeping the b value same as in original
//image and setting r and g as 0.
p = (a<
<
24 ) | ( 0 <
<
16 ) | ( 0 <
<
8 ) | b;
img.setRGB(x, y, p);
}
}//write image
try
{
f = new File( "G:\\Out.jpg" );
ImageIO.write(img, "jpg" , f);
}
catch (IOException e)
{
System.out.println(e);
}
}
}
注意:该代码无法在在线IDE上运行, 因为它需要磁盘上的映像。
输出如下:
Inp.jpgOup.jpg
【Java中的图像处理S5(彩色图像转为红色,绿色,蓝色图像)】如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- Java中的图像处理S7(创建随机像素图像)
- 每日LeetCode力扣(21~25)
- 每日LeetCode力扣(36~40)
- 每日LeetCode力扣(26~30)
- #yyds干货盘点#RabbitMQ示例5(主题topic交换机)
- Android高手笔记 - 启动优化
- 动力节点Spring框架学习笔记-王鹤Spring 事务
- 每日LeetCode力扣(41~45)
- 杭州数据恢复之RED VV内存卡无法正常识别恢复成功