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

  • 相关阅读:
    HTTP协议详解(真的很经典)
    几点建议,让Redis在你的系统中发挥更大作用
    Redis能干啥?细看11种Web应用场景
    Java中使用Jedis操作Redis
    java的锁机制——synchronized
    web开发中的两把锁之数据库锁:(高并发--乐观锁、悲观锁)
    一分钟教你知道乐观锁和悲观锁的区别
    $^,$@,$?,$<,$(@D),$(@F) of makefile
    linux shared lib 使用与编译
    makefile learning
  • 原文地址:https://www.cnblogs.com/gwind/p/8214770.html
Copyright © 2011-2022 走看看