Java中的RGB图像过滤器

黑手党

我想像这样看我的照片:

在此处输入图片说明

我想按一个按钮过滤图像。
目前,我有一个BufferedImage,但我不知道如何设置像素。

这会将我的图片转换为蓝色,但是我不知道为什么以及如何设置绿色和红色?

        int width = img.getWidth();
        int height = img.getHeight();

        for(int y = 0; y < height; y++){
          for(int x = 0; x < width; x++){
            int p = img.getRGB(x,y);

            int r = (p>>16)&0xff;
            int g = (p>>8)&0xff;
            int b = p & 0xff;

            img.setRGB(x,y,r);
          }
        }
        this.lblFilteredImage.setIcon(new ImageIcon(img));
吉尔伯特·勒布朗克

获得单独的彩色图像的一种方法是将其他颜色归零。

RGB显示

GUI模型类通过更改掩码位从原始图像生成红色,绿色和蓝色图像。

package com.ggl.rgbdisplay.model;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

public class RGBDisplayModel {

    private BufferedImage originalImage;
    private BufferedImage redImage;
    private BufferedImage greenImage;
    private BufferedImage blueImage;

    public BufferedImage getOriginalImage() {
        return originalImage;
    }

    public void setOriginalImage(BufferedImage originalImage) {
        this.originalImage = originalImage;
        this.redImage = createColorImage(originalImage, 0xFFFF0000);
        this.greenImage = createColorImage(originalImage, 0xFF00FF00);
        this.blueImage = createColorImage(originalImage, 0xFF0000FF);
    }

    public BufferedImage getRedImage() {
        return redImage;
    }

    public BufferedImage getGreenImage() {
        return greenImage;
    }

    public BufferedImage getBlueImage() {
        return blueImage;
    }

    public static BufferedImage createTestImage() {
        BufferedImage bufferedImage = new BufferedImage(200, 200,
                BufferedImage.TYPE_INT_ARGB);
        Graphics g = bufferedImage.getGraphics();

        for (int y = 0; y < bufferedImage.getHeight(); y += 20) {
            if (y % 40 == 0) {
                g.setColor(Color.WHITE);
            } else {
                g.setColor(Color.BLACK);
            }
            g.fillRect(0, y, bufferedImage.getWidth(), 20);
        }

        g.dispose();
        return bufferedImage;
    }

    private BufferedImage createColorImage(BufferedImage originalImage, int mask) {
        BufferedImage colorImage = new BufferedImage(originalImage.getWidth(),
                originalImage.getHeight(), originalImage.getType());

        for (int x = 0; x < originalImage.getWidth(); x++) {
            for (int y = 0; y < originalImage.getHeight(); y++) {
                int pixel = originalImage.getRGB(x, y) & mask;
                colorImage.setRGB(x, y, pixel);
            }
        }

        return colorImage;
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

残留图像中的双边过滤器

来自分类Dev

Java上的图像处理过滤器

来自分类Dev

使用javascript从图像中删除灰度css过滤器

来自分类Dev

MOODLE中的过滤器

来自分类Dev

Angular 中的过滤器

来自分类Dev

VueJs 中的过滤器

来自分类Dev

Kibana 中的过滤器

来自分类常见问题

如何使用Docker图像过滤器

来自分类Dev

CIFourfoldRotatedTile核心图像过滤器

来自分类Dev

Fabric JS图像过滤器

来自分类Dev

Smarty CDN输出图像过滤器

来自分类Dev

Fabric JS图像过滤器

来自分类Dev

Smarty CDN输出图像过滤器

来自分类Dev

ffmpeg 过滤器图像处理

来自分类Dev

response.setContentType()在Java过滤器中重置

来自分类Dev

在Java Play应用中启用CORS过滤器

来自分类Dev

在Java 8中,如何应用此过滤器?

来自分类Dev

Java中Servlet /过滤器特定的异常处理

来自分类Dev

在Global.java中播放框架多个过滤器

来自分类Dev

流过滤器java中的if-else

来自分类Dev

在Java过滤器中获取方法名称

来自分类Dev

如何在Java中创建HBbase复合过滤器

来自分类Dev

什么是Java中的过滤器流的隐性契约?

来自分类Dev

如何在Java中制作文本过滤器?

来自分类Dev

用于Java中uid的LDAP搜索过滤器

来自分类Dev

在Java过滤器中获取方法名称

来自分类Dev

PHP的图像过滤器“ colorize”销毁图像细节

来自分类Dev

如何在iOS中的图像上实现XMP预设过滤器

来自分类Dev

C中的过滤器程序不适用于更复杂的图像