美文网首页
Java图像处理之正片叠底

Java图像处理之正片叠底

作者: 胖五 | 来源:发表于2017-09-27 22:04 被阅读95次

正片叠底,在Photoshop中是一种混合模式,简单的说就是可以让2个图层的内容融合起来。

融合的计算公式其实非常简单,就是 A*B/255。(A、B是指的图层A和图层B)

再解释一下就是:

A图层中的红色通道和B图层中的红色通道所对应的每一个像素的灰阶值相乘,再被255除。得到一个新的红色通道。 蓝色与绿色通道的操作也是一样的。

某个通道的像素灰阶值其实就可以直接用其对应RGB值来代替,下面用代码来解释下这个过程。

先封装一个根据像素获取对应RGB数组的方法 后面会用到

public static int[] getRGB(int pixel) {
    int r = (pixel >> 16) & 0xff;
    int g = (pixel >> 8) & 0xff;
    int b = pixel & 0xff;
    return new int[]{r, g, b};
}

然后遍历图像像素,遍历过程点省略了,直接进入处理阶段


// 先获取两个图层同一位置的像素值
int pixelA = imgA.getRGB(x, y);
int pixelB = imgB.getRGB(x, y);

// 获取两组RGB数组
int[] rgb1 = getRGB(pixelA);
int[] rgb2 = getRGB(pixelB);

// 根据公式分别计算新的RGB值
int r = rgb1[0] * rgb2[0] / 255;
int g = rgb1[1] * rgb2[1] / 255;
int b = rgb1[2] * rgb2[2] / 255; 

// 获得正片叠底后的像素值
int pixelNew = new Color(r, g, b).getRGB();

拿到新像素后直接设置到新的图片中即可了。

这个方法已经被me封装好了,放到了Nutz的工具栏Images中,可以直接拿来调用,下面给出个Nutz的调用例子,可以拿来修改下直接用。

比如我们给金将军加个太阳:

// 先获取两张图片
BufferedImage imgA = Images.read(new File("金将军.jpg"));
BufferedImage imgB = Images.read(new File("大太阳.jpg"));

// 正片叠底
BufferedImage imgMultiply = Images.multiply(imgA, imgB, 0, 0);

// 输出到文件
Images.write(imgMultiply, new File("大太阳金将军.jpg"));

输出结果图:

当然了,这段代码其实也可以写成一行

Images.write(Images.multiply(Images.read(new File("金将军.jpg")), Images.read(new File("大太阳.jpg")), 0, 0), new File("大太阳金将军.jpg"));

是不是非常简单_

更多关于图像处理接口可以看Nutz的文档, 或许对你会有帮助。

相关文章

  • Java图像处理之正片叠底

    正片叠底,在Photoshop中是一种混合模式,简单的说就是可以让2个图层的内容融合起来。 融合的计算公式其实非常...

  • 梦幻柔焦——奥顿大法

    方法:复制背景图层,然后对拷贝图层添加【高斯模糊】,接着更改【图像——应用图像——正片叠底——混合模式 滤色——更...

  • Ps颜色混合模式 正片叠底与滤色

    首先说明一点:颜色混合是基于颜色模式的,正片叠底是基于CMYK模式的;滤色是基于RGB模式的。 正片叠底 正片叠底...

  • 融合混合模式

    叠加模式。以基色为主导 如果基色比较暗,结果色就类似与正片正片叠底,但加深的没有正片叠底厉害。如果基色比较亮,结果...

  • PS学习笔记

    图层混合模式 白底的:正片叠底,可以通过色阶强化白色;黑底的:滤色。正片叠底:过滤白色,使照片加深,抠图中的深色;...

  • 048-1 烁 ing PS作业快速入门 #有号以后课程#

    这张的细节处理不好 这个操作很好,不用很累的抠图,正片叠底→去掉白色 这个也好,绿色→去掉黑色

  • ps 正片叠底和滤色

    在ps里面修产品图的时候,我们常常会遇到正片叠底和滤色,很多时候我们会用,但是搞不清具体作用。 正片叠底:干掉白色...

  • 板绘分享

    软件:ps 新建--勾线--新建图层设置正片叠底--上色

  • ipad绘画分享第3天

    今天还是还是细节修饰 发现了颜色渐变控制 目前来说最好用的方法 气笔修饰+正片叠底 正片叠底用到之后 颜色会十分统...

  • 正片叠底与滤色

    正片叠底与滤色这两种图层混合模式在ps中几乎是应用得最多的两种混合模式。 滤色一般用于提高亮度,正片叠底一般用于减...

网友评论

      本文标题:Java图像处理之正片叠底

      本文链接:https://www.haomeiwen.com/subject/vhepextx.html