将像素从一个图像复制到另一个

Steffi S.

我正在用SWT创建图像操纵器框架。它的一部分是选择图像的特定部分并以某种方式对其进行操作。由于我使用第三方软件,因此我只能操作整个图像,并且想要复制选择的像素。

该函数如下所示:

public Image doMagic(Image input, Selection selection) {
    Image manipulatedImage = manipulateImage(input);
    int width = manipulatedImage.getBounds().width;
    int height = manipulatedImage.getBounds().height;

    GC gc = new GC(manipulatedImage);
    for (int x = 0; x < width; x++) {
        for (int y = 0; y < height; y++) {
            if (!selection.containsPixel(x, y)) {
                // we should not have transformed this pixel 
                //-> we set it back to the original one
                gc.drawImage(input, x, y, 1, 1, x, y, 1, 1);
            }
        }
    }
    gc.dispose();
    return manipulatedImage;
}

现在可以使用,但是很慢。可能是因为整个图片用于绘制单个像素。

第二种可能性是:

    ImageData inputData = input.getImageData();
    ImageData manipulatedImageData = manipulatedImage.getImageData();
    for (int x = 0; x < width; x++) {
        for (int y = 0; y < height; y++) {
            if (!selection.containsPixel(x, y)) {
                manipulatedImageData.setPixel(x, y, inputData.getPixel(x,y));
            }
        }
    }
    return new Image(image.getDevice(), manipulatedImageData);

但这根本不起作用,我猜是因为在操作时调色板发生了变化。在我的情况下,灰度会产生黄色的灰度图像。

那么,我还有另一种可能吗?在图像之间传输像素的推荐方法是什么?

greg-449

对于ImageData您需要使用palette领域:

int inputPixel = inputData.getPixel(x,y);

RGB rgb = inputData.palette.getRGB(inputPixel);

int outputPixel = manipulatedImageData.palette.getPixel(rgb);

manipulatedImageData.setPixel(x, y, outputPixel);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenCV Python将多边形从一个图像复制到另一个图像

来自分类Dev

将文件从一个目录复制到另一个

来自分类Dev

将元素从一个内存复制到另一个

来自分类Dev

将数据从一个hbase表复制到另一个

来自分类Dev

将Android Activity从一个应用复制到另一个

来自分类Dev

将数据从一个表复制到另一个表

来自分类Dev

将内容从一个元素复制到另一个

来自分类Dev

将条件从一个对象复制到另一个对象

来自分类Dev

将特定的列从一个DataTable复制到另一个

来自分类Dev

将JS事件从一个元素复制到另一个

来自分类Dev

将消息从一个队列复制到另一个队列

来自分类Dev

将范围从一个容器复制到另一个容器

来自分类Dev

将文件从一个目录复制到另一个目录

来自分类Dev

将几列从一个表复制到另一个

来自分类Dev

将文件从一个拉链复制到另一个?

来自分类Dev

将文件从一个拉链复制到另一个?

来自分类Dev

将文件从一个NAS复制到另一个

来自分类Dev

将特定的列从一个DataTable复制到另一个

来自分类Dev

将文件从一个目录复制到另一个目录

来自分类Dev

将文本从一个终端复制到另一个终端

来自分类Dev

将数据从一个hbase表复制到另一个

来自分类Dev

将文件从一个目录复制到另一个目录

来自分类Dev

将条目从一个keepass文件复制到另一个

来自分类Dev

将架构从一个容器复制到另一个

来自分类Dev

将权限从一个文件复制到另一个文件

来自分类Dev

将数据从一个Excel复制到另一个Excel

来自分类Dev

将列从一个jtable复制到另一个

来自分类Dev

将条目从一个Multimap复制到另一个

来自分类Dev

使用PIL将一个图像复制到另一个图像

Related 相关文章

热门标签

归档