今天尝试用Caesar加密一张MNIST图片,然后和原来的图片进行混合,下面我把我的代码分享出来:
image1 = Image.open("./images1.png")
image2 = Image.open("./encrypted-caesar.png")
def changeImageSize(maxWidth,
maxHeight,
image):
widthRatio = maxWidth/image.size[0]
heightRatio = maxHeight/image.size[1]
newWidth = int(widthRatio*image.size[0])
newHeight = int(heightRatio*image.size[1])
newImage = image.resize((newWidth, newHeight))
return newImage
# Make the images of uniform size
image3 = changeImageSize(28, 28, image1)
image4 = changeImageSize(28, 28, image2)
# Make sure images got an alpha channel
image5 = image3.convert("RGBA")
image6 = image4.convert("RGBA")
# alpha-blend the images with varying values of alpha
alphaBlended1 = Image.blend(image5, image6, alpha=.2)
alphaBlended2 = Image.blend(image5, image6, alpha=.4)
alphaBlended3=Image.blend(image5,image6,alpha=.6)
# Display the alpha-blended images
# alphaBlended1.show()
# alphaBlended2.show()
alphaBlended1.save('blend1_2.png')
alphaBlended2.save('blend1_4.png')
alphaBlended3.save('blend1_6.png')
加密图片的代码请参考:
https://github.com/TomaszBorczyk/image-encryption-python
效果展示
原图
加密后的图片
混合后的图片
alpha 0.2
alpah 0.6
alpha 0.4