更改 java 中的 bufferedImage 像素
Change bufferedImage pixels in java
我有个小问题。
我有一个 BufferedImage,它的像素具有 RGB 值。
此代码用于从 de R、G、B、A 值创建 RGB 值。
private int getRGB(int r, int g, int b, int a){
return (a << 24) | (r << 16) | (g << 8) | b;
}
第一个问题是,我如何从像素中获取 R、G、B、A 值,因为像素 RGB 将 return 上面代码生成的数字。
如果我有这些值,我可以将 2 个像素相互叠加以便计算新值,还是我必须手动执行此操作?
通过自动计算,您可以想到 Java 2D,当您将 2 个运输工具放在上面时,它会合并颜色。
非常感谢。
The first question is, how can i get the R, G, B, A values from a Pixel, because the pixel RGB will return the number that is generated by the code above.
您可以按如下方式反转该过程:
int a = (argb >> 24) & 0xFF;
int r = (argb >> 16) & 0xFF;
int g = (argb >> 8) & 0xFF;
int b = (argb >> 0) & 0xFF;
And if I have those values, can I put 2 pixels on top of each other so it calculates the new values or do I have to do that by manual? With automatic calculation you can think of Java 2D when you put 2 transport things on top it will merge the colors.
您需要手动执行此操作(或针对每个像素调用实用方法),因为您需要决定如何合成颜色,例如您可以使用最大值、总和、平均值等像素值。
我有个小问题。 我有一个 BufferedImage,它的像素具有 RGB 值。 此代码用于从 de R、G、B、A 值创建 RGB 值。
private int getRGB(int r, int g, int b, int a){
return (a << 24) | (r << 16) | (g << 8) | b;
}
第一个问题是,我如何从像素中获取 R、G、B、A 值,因为像素 RGB 将 return 上面代码生成的数字。
如果我有这些值,我可以将 2 个像素相互叠加以便计算新值,还是我必须手动执行此操作? 通过自动计算,您可以想到 Java 2D,当您将 2 个运输工具放在上面时,它会合并颜色。
非常感谢。
The first question is, how can i get the R, G, B, A values from a Pixel, because the pixel RGB will return the number that is generated by the code above.
您可以按如下方式反转该过程:
int a = (argb >> 24) & 0xFF;
int r = (argb >> 16) & 0xFF;
int g = (argb >> 8) & 0xFF;
int b = (argb >> 0) & 0xFF;
And if I have those values, can I put 2 pixels on top of each other so it calculates the new values or do I have to do that by manual? With automatic calculation you can think of Java 2D when you put 2 transport things on top it will merge the colors.
您需要手动执行此操作(或针对每个像素调用实用方法),因为您需要决定如何合成颜色,例如您可以使用最大值、总和、平均值等像素值。