Java字节图像处理
我需要用Java创建一个简单的图像处理演示。我的代码是基于swing的。我不需要做任何复杂的事情,只要显示图像在某种程度上发生了变化。我把图像读为byte[]
。无论如何,我可以在不破坏字节的情况下操作这个字节数组,以显示一些非常简单的操作。我不想使用paint()
等。我可以直接对byte[]
数组执行任何操作来显示一些更改吗
编辑:
我正在使用ApacheIO库以byteArrayInputStream的形式读取jpg图像。字节读取正常,我可以通过将它们写回jpeg来确认
# 1 楼答案
您可以尝试将RGB图像转换为灰度。如果图像以每像素3字节的形式表示为红-绿-蓝,则可以使用以下公式:y=0.299*r+0.587*g+0.114*b
为了清楚起见,迭代字节数组并替换颜色。这里有一个例子:
更新:
以上代码假设您使用的是原始RGB图像,如果需要处理Jpeg文件,可以执行以下操作: