Python Image Library

พอดีมีเรื่องจำเป็นต้องจัดการกับรูปภาพนิดหน่อย ดูเหมือนงานจะง่ายๆ แต่ออกจะกินแรงอยู่ไม่น้อย ปัญหาคือว่า มีรูปขนาด 13500 x 13500 pixel อยู่รูปหนึ่ง ต้องการหั่นเป็นรูปย่อยๆ รูปละ 1350 x 900 ดังนั้นก็จะได้รูปออกมา 10 x 15 = 150 รูป นอกจากนี้แต่ละรูป จะต้องใส่ขอบขาวเข้าไปด้านขวา และใส่ตัวเลขเข้าไปเพื่อบอกว่าเป็นรูปหมายเลขที่เท่าไหร่ โดยเป็นตัวเลขสองตัว ตั้งแต่รูปซ้ายบนสุด (0,0) จนถึงขวาล่างสุด (9, 14) เพื่อที่จะเอารูปไปอัดจากร้าน แล้วเอามาเรียงกลับเป็นอย่างเดิมทีหลังได้โดยไม่งง

ของแบบนี้จะให้ใช้ The GIMP หรือ Photoshop ทำ อาจจะเปลืองแรงอยู่ ก็เลยลองเอา Python Image Library (PIL) ที่เคยเล่นอยู่นิดๆ หน่อยๆ มาลองเขียนดู
ทีแรกก็โหลด module แล้วก็เปิดไฟล์ภาพขึ้นมาก่อน เขียนง่ายๆ คือ

import Image
src_img = Image.open("/tmp/hires.jpg")

วนลูปก็ทำได้ไม่ยาก

for x in xrange(0, 13500, 1350):
  for y in xrange(0, 13500, 900):
    # do something

วิธีตัดรูปออกมา ใช้ method crop() ซึ่งจะ return Image ออกมาให้ พารามิเตอร์ใส่เป็น tuple บอกตำแหน่ง 4 มุม

piece = src_img.crop((x, y, x+1350, y+900))

ผมต้องการเพิ่มขอบด้านขวาเข้าไป เพื่อเอาไว้แสดงตัวเลขลำดับรูป แต่คิดวิธีอื่นไม่ออก เลยใช้วิธีสร้าง Image ขึ้นมาใหม่ให้มีขนาด 1400 x 900 แล้วเอารูปที่ตัดได้มาแปะชิดซ้าย ก็จะได้ขอบด้านขวาตามต้องการ

newpiece = Image.new("RGB", (1400, 900), (255, 255, 255)) # mode, size, color
newpiece.paste(piece, (0, 0)) # paste at (0, 0)

มาถึงการใส่ตัวหนังสือลงไป อันนี้ต้องใช้อีก module คือ ImageDraw จะทำให้เราสามารถใส่ตัวหนังสือ หรือลากเส้นบนรูปได้
ที่จริงตรงนี้เขียนเป็น text อันเดียวก็ได้ แต่มันจะเลยขอบ ต้องเขียนตะแคง แต่ขี้เกียจอ่าน document เรื่อง rotation ก็เลยมักง่ายเขียนเอาแบบนี้

import ImageDraw
draw = ImageDraw.Draw(newpiece)
draw.text((1355,10), "%d" % x/1350, (0, 0, 0)) # put text at (1355, 10), color = black
draw.text((1355,50), "%d" % y/900, (0, 0, 0))

ปรากฏว่าตัวหนังสือที่ได้มันเล็กเกินไปอีก ถ้าจะปรับแต่งฟอนต์ต้องให้ module ImageFont

import ImageFont
ft = ImageFont.truetype("tahoma.ttf", 30) # Tahoma, 30 point

โค้ดส่วนเขียนตัวหนังสือต้องเพิ่มพารามิเตอร์ไปอีกตัว

draw.text((1355,50), "%d" % y/900, (0, 0, 0), font=ft)

สุดท้ายก็สั่งให้เซฟ ปล่อยให้ทำงานวนลูปจนเสร็จ

newpiece.save("img_%d_%d.jpg" % (x/1350, y/900), quality=85)

สุดท้ายก็เอารูปที่ได้ทั้งหมดไปอัดที่ร้าน ตัดขอบด้านข้างทิ้ง เอามาแปะรวมกัน ก็จะเรียบร้อย

NHK ni Youkoso!

NHK ถ้าแปลกันตรงๆ ก็หมายถึง Nippon Hoso Kyokai (Japan Broadcasting Corporation – องค์การแพร่ภาพและกระจายเสียงญี่ปุ่น) แต่ว่า NHK ในชื่อของ manga เรื่อง NHK ni Youkoso! (Welcome to the NHK) หมายถึงองค์การลับหนึ่งที่อาศัย NHK เป็นฉากหน้า แต่ความหมายจริงๆ คือ Nippon (ญี่ปุ่น) Hikikomori (คนเก็บตัวจากสังคม) Kyokai (องค์กร) ที่มีจุดมุ่งหมายคือการล้างสมองคนญี่ปุ่นให้กลายเป็น otaku ผ่านทางรายการทีวี (โดยเฉพาะ Anime)

N.H.K.

คำว่า hikikomori หมายถึง คนประเภทที่ชอบเก็บตัว ไม่สุงสิงกับใคร ตัดขาดจากโลกภายนอก แน่นอนว่า ไม่มีแฟน และไม่มีงานทำ คุณสมบัติเหล่านี้มีครบในตัว ซาโต้ ทัตซึฮิโร พระเอกของเรื่อง แต่ไม่รู้โชคชะตาเล่นตลกหรืออะไร ที่ทำให้มีสาวน้อยน่ารัก อาสาเป็นคนเยียวยา รักษาอาการเก็บตัวของพระเอก แต่อ่านไปอ่านมา ดูเหมือนว่าสาวน้อยคนนี้จะเป็นคนมีปัญหาเสียยิ่งกว่าตัวพระเอกซะอีก

เนื้อเรื่องใน NHK ออกจะเป็นตัวอย่างที่ไม่ค่อยดีสำหรับเยาวชนซักเท่าไหร่ เพราะพฤติกรรมแต่ละอย่างของตัวละครค่อนข้างจะ “หลุมดำ” อยู่ไม่น้อย เช่น พระเอกแท็คทีมกับเพื่อนสมัยมัธยมเขียนเกมโป๊ แอบถ่ายรูปสาว ม.ต้น อดีตรุ่นพี่ผู้นิยมกินยากล่อมประสาท ชมรมฆ่าตัวตาย ฯลฯ แต่สิ่งที่แฝงอยู่ในมุกตลกและตัวละครเหล่านี้ เป็นการเสียดสีผู้คนในสังคมอย่างเจ็บแสบ อย่างเช่นในตอนนึงที่พระเอก ถูกหลอกให้ไปขาย “MyWay” (ชื่อคุ้นๆ เนอะ) โดยเพื่อนร่วมชั้นสมัยเรียน ที่ต้องทำทุกอย่างเพื่อหาเงินไปเลี้ยงพี่ชายตัวเองที่เป็น hikikomori เหมือนกัน “สูบเงินจากขยะไปโปะให้ขยะ” ในเนื้อเรื่องเขียนไว้อย่างนี้

ได้ยินว่าตอนนี้ SIC ซื้อลิขสิทธิ์มาแล้ว แต่ยังไม่เห็นพิมพ์เล่มแรกซักที ถ้าใครอยากอ่านก็มีของ Ant comic แปลใช้ได้ รูปเล่มโอเค เสียตรงที่กระดาษห่วยไปนิด และคาดว่าจะพิมพ์ไม่จบเพราะมีคนซื้อลิขสิทธิ์ไปแล้ว

South Americans

ใครบอกว่าหงส์มีแต่นักเตะสเปน ฤดูกาลหน้าคงต้องคิดใหม่ เพราะตอนนี้สามตัวที่เพิ่งได้มาเป็นนักเตะอเมริกาใต้ล้วนๆ

Orelio, Gonzalez, Paletta

จากซ้าย:
Fabio Orelio แบ็คซ้ายบราซิลเลียน ย้ายมาจากบาเลนเซีย
Mark Gonzalez ปีกชิลีได้เวิร์คเพอร์มิตเรียบร้อยแล้ว หลังจากฤดูกาลที่แล้วต้องไปเล่นให้รีลโซเซียดัดพลางๆ ก่อน
Gabriel Paletta กองหลังอาร์เจนตินาชุดเยาวชน (หน้าตาไม่ค่อยเยาวชนเท่าไหร่เลย)

ฤดูกาลหน้าสนุกแน่

Distros

เทรนด์ของ Linux ดิสโทรต่างๆ

Distros

เป็นไปตามคาดว่า ubuntu มาแรงสุด
ดูแล้ว redhat นี่แผ่วลงไปเยอะเลย ตลาดองค์กรเค้าไปใช้อย่างอื่นกันหมดหรือ ?