我们强烈建议你在下面的帖子中提及此内容。
- Java中的图像处理设置1(读和写)
- Java中的图像处理设置2(获取并设置像素)
注意
:在负片图像中, 图像的Alpha分量将与原始图像相同, 但是RGB将被更改, 即所有三个RGB分量的值均为255-原始分量值。
算法:
- 获取像素的RGB值。
- 计算新的RGB值, 如下所示:
- R = 255 – R
- G = 255 – G
- B = 255 – B
- 将像素的R, G和B值替换为步骤2中计算出的值。
- 对图像的每个像素重复步骤1到步骤3。
【Java中的图像处理S4(彩色图像到负图像转换)】以上算法的:
//Java program to demonstrate colored to negative conversion
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class Negative
{
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 image width and height
int width = img.getWidth();
int height = img.getHeight();
//Convert to negative
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 ;
int g = (p>
>
8 )&
0xff ;
int b = p&
0xff ;
//subtract RGB from 255
r = 255 - r;
g = 255 - g;
b = 255 - b;
//set new RGB value
p = (a<
<
24 ) | (r<
<
16 ) | (g<
<
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.jpgOut.jpg
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- #yyds干货盘点#kubernetes入门基础-Service的概念以及相关操作
- Java中的图像处理基础S2(获取并设置像素)
- Java中的图像处理基础介绍S1(读和写)
- Java中的图像处理S3(彩色图像到灰度图像的转换)
- Java中的图像处理S6(将彩色图像转换为棕褐色图像)
- 使用OpenCV进行图像修复-项目示例
- 使用K均值聚类的图像压缩
- 使用霍夫曼编码进行图像压缩原理和实现细节
- 使用CNN的图像分类器原理和实现