CTF-MISC-好多数值 #python#Image

好多数值——flag{youc@n'tseeme}

描述

一串RGB值,
255,255,255
255,255,255
255,255,255
255,255,255
255,255,255
……

分析

python画图撸代码
思路是:
1.行数n因数分解,由于可能有很多结果,引入交互(是有多懒)
2.因为不确定哪个是X哪个是Y,调用了两次画图函数。
虽然题目很简单,但是这种一键操作的服务大众精神值得鼓励!而且我复习了画图的原理!需要来点艺术放松身心!

过程中出现了各种错……于是一路改

最终结果
from PIL import Image

def Crack(n):#因数分解
    flag = []
    for each in range(2,int(n **0.5)+1):
        if(n % each == 0):
            print(each,int(n/each))
            flag += [(each,int(n/each))]
    if len(flag) == 1:return flag[0]
    else:
        choice = input("选择第几组(0-%s):"%(len(flag)-1))
        return flag[int(choice)]
def Paint(X,Y,listrgb):#根据字符串列表画图
    pic = Image.new("RGB",(X, Y))
    i=0
    for x in range (0,X):   
        for y in range (0,Y):
            temp = listrgb[i].split(',')
            pic.putpixel([x,y],(int(temp[0]),int(temp[1]),int(temp[2])))
            i = i+1
    pic.show()
    #pic.save(r"C:\Users\ben\Desktop\flag%s.png"%(X))
listrgb = open(r"C:\Users\ben\Desktop\1.txt").readlines()
X,Y = Crack(len(listrgb))
Paint(X,Y,listrgb)
Paint(Y,X,listrgb)

总结

1.可能影响画图结果的因素有:长宽值交换(不对的话会贼丑)、先循环x还是先循环y(不对的话会镜面)
2.最后提交的时候一直出错……原来单引号是中文的……
人间不值得


你可能感兴趣的:(CTF-MISC-好多数值 #python#Image)