将图像的像素替换为其他图像,但保留图像



我见过一个女孩的图像,它由她的多个图像组成。所以我想使用 python 脚本实现同样的事情。(我对图像处理完全陌生)

我正在为此脚本使用 pil 库。

import sys,os
from PIL import Image
img = Image.open("DSC_0149.jpg")
pixels = img.load()
for i in range(img.size[0]):   
    for j in range(img.size[1]):
        pixels[i,j] = (i, j, 100) # I will change this to some pic image.
img.show()

我首先尝试只是更改像素保留图片的颜色,但是此代码不起作用。

谁能指导我如何实现它。

编辑:我想用多张图片填充图片,但保留原始图片。像这样的东西:http://www.photoshopessentials.com/photo-effects/photo-fill/但方式要好得多。

因此,

首先您需要使用此像素编辑每个像素以更改颜色:

如果是 rgb:

img.putpixel((10,15),(r,g,b))

更快:像素[1, 1] = (r, g, b)

否则:

是否可以在 Python 中更改单个像素的颜色?

在知道如何编辑每个像素之后,您必须创建图像的一个小副本,并像这样调整大小:

复制图像:

// Not tested : Make sure it's rgb
img = Image.new( 'RGB', (img.size[0],(img.size[1]), "black") # create a new black image
pixels = img.load() # create the pixel map
for i in range(img.size[0]):    # for every pixel:
    for j in range(img.size[1]):
        pixels[i,j] = other_image_pixel[i,j] # set the colour accordingly

https://opensource.com/life/15/2/resize-images-python

对每个小图像应用"颜色"滤镜,以匹配将替换为此图像的区域颜色。

理解整个过程的最好方法是花时间阅读同一种语言的代码,大约 200 行:

https://github.com/codebox/mosaic

希望它能解决你的问题

最新更新