# -*- coding:utf-8 -*- import Image import math # Image库学习 im = Image.open("C:UsersgaojieDesktopdog.jpg") print im.format, im.size, im.mode # 查看图像信息 #im.show() # 显示图片 im.save('save.png', 'PNG') # 保存图片 im2 = im.rotate(45) # 逆时针旋转45度 box = (100, 100, 200, 200) region = im.crop(box) # 图片裁剪,抠出box位置的图片,存为region region = region.transpose(Image.ROTATE_180) # 翻转图片,transpose以为转置,翻转 im.paste(region, box) # 图片粘贴,在图片对象im的box位置放上图片region newImage = Image.new('RGBA', (640, 480), (0, 255, 0)) # 创建新的图片 newImage.save('newImage.png', 'PNG') # 保存图片 # Image.blend(image1, image2, 0.5).show() # 合并两张图片,图片的尺寸和模式必须相同,alpha是一个介于[0,1]的浮点数 im3 = im.point(lambda i: i * 1.5) # 参数为一个函数,对每个点进行50%的加强 print im.split() # 分割成三个通道,此时r, g, b分别为三个图像的对象 im.resize((128, 128)) # 改变图像的大小 im.convert('RGBA') # 改变图像的类型 print im.getpixel((4, 4)) # 获取某个像素位置的值 im.putpixel((4, 4), (255, 0, 0)) # 设置某个像素位置的值 # 心中无码 lena = Image.open('C:UsersgaojieDesktopLena.png') b0 = '' bnum = 0 width, height = lena.size for x in range(width): for y in range(height): if lena.getpixel((x, y)) != (255, 255, 0): # 心中无码,即非码区 if lena.getpixel((x, y))[2] & 0x01: # 取blue通道的最低位 b0 += '0' else: b0 += '1' bnum += 1 length = int(math.sqrt(len(b0))) print length, b0 img = Image.new('RGB', (length, length)) i = 0 for x in range(length): for y in range(length): if b0[i] == '0': img.putpixel([x, y], (0, 0, 0)) else: img.putpixel([x, y], (255, 255, 255)) i += 1 img.save('new.png') img.show()
产生的二维码,可用http://www.cnblogs.com/gwind/p/8030190.html的二维码解码,得到一个base64编码,解码后即可得到flag