zoukankan      html  css  js  c++  java
  • 实验吧,心中无码

    # -*- 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

  • 相关阅读:
    钱伟长的养生之道:每天步行三千步
    GBDT 深入理解
    整形数据的存储方式
    进制基础学习
    C语言运算符(注意事项)
    PHP文件锁
    gcc options选项的优化及选择
    Datenode无法启动
    如何使用WebUploader。
    thinkphp如何实现伪静态
  • 原文地址:https://www.cnblogs.com/gwind/p/8214770.html
Copyright © 2011-2022 走看看