Saturday, December 1, 2012

การ crop และ paste รูป

ในบทความนี้ เราจะลองใช้หลักการของการตัดและแปะ เพื่อสร้าง effect แบบง่ายๆให้กับรูป คือการเคลื่อนรูปไปบางส่วน ให้ได้ผลลัพธ์ดังนี้



โดยกำหนดว่าให้มีการเคลื่อนของรูปไปประมาณ 30% ของความกว้างของรูป

ก่อนอื่น ต้องเพิ่มเมนูเช่น
processMenu.add_command(label="Roll", command=self.imgRoll)

แล้วก็สร้าง method คือ imgRoll ดังนี้
def imgRoll(self):
    #assume rolling horizontally by 30% of width
    w,h = self.im.size
    roll = int(0.30*w)
    #crop 2 parts
    part1 = self.im.crop((0,0,roll,h)) #(left, upper, right, lower)
    part2 = self.im.crop((roll,0,w,h))
    #create new image
    imr = Image.new("RGB",(w,h))
    #swap and paste crop images
    imr.paste(part2,(0,0,w-roll,h))
    imr.paste(part1,(w-roll,0,w,h))
    #set image to rolled image
    self.im = imr.copy()
    self.showImage()

No comments:

Post a Comment