ผมอยากจะ generate ภาพ Indexed Image ที่มี color palette เป็น 2 คือ ขาวกับดำ น่ะครับแต่ไม่รู้ว่าต้องทำอย่างไรดี
เดี๋ยวขออธิบายการทำงานเครื่องมือของผมซักหน่อยนะครับ ที่ผมใช้เป็นเครื่องมือที่จะเป็นเครื่องมือที่ใช้ map texture ตามภาพที่เราใส่เข้าไป โดยส่งพารามิเตอร์ไป 2 ตัวคือ indexed image กับ ลิสต์ของ texture โดยที่ texture ต้องมีจำนวนเท่ากับ color index ของภาพที่ใส่เข้าไป ตอนที่ผมลองสร้าง indexed image ใน GIMP ก็สามารถใช้ได้ตามปกติ แต่ทีนี้ผมต้องการที่จะ generate ภาพขึ้นมาเลยไม่รู้ว่าต้องเซ็ตอย่างไรถึงจะได้อย่างที่ทำใน GIMP
นี่เป็นตัวอย่างที่ผมทำนะครับ ลองสร้างภาพแล้วใส่ palette เข้าไป
import Image,ImageDraw def main(): image = Image.new("P",(128,128)) image.putpalette([0,0,0, # แบ็คกราวน์สีดำ 255,255,255 # Color index สีขาว ]) draw = ImageDraw.Draw(image) for i in range(image.size[0]): draw.point((i,image.size[1]/2),255) image.save("/roadmap.png","PNG") if __name__ == '__main__' : main()
พอเอาภาพที่ได้จากโค้ดข้างบนนี้มาใช้ map texture มันก็จะฟ้องว่าภาพ indexed image ของผมมี color index มากกว่า texture ที่ใส่เข้าไป (ผมใส่ไป 2 อันเพราะคิดว่ามันจะมี color index เป็น 2)
รบกวนช่วยแนะนำทีครับ ขอบคุณมากครับ
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
หมายถึงต้องการ BW? เปลี่ยน P เป็น L แล้วไม่ต้องยุ่งกับ palette ครับ
แล้วถ้าหากผมมีภาพที่เป็น bitmap ธรรมดาแต่ต้องการนำมาแปลงเป็น PNG ที่มี color palette ต้องอย่างไรบ้างครับ
ลองโหมด “1” ก่อนก็ได้ ถ้าจะ convert ก็ใช้
image.putpalette()ขอบคุณครับ
ผมลองแล้วครับปรากฎว่าใช้ไม่ได้ มันต้องเป็นภาพที่มี color palette เท่านั้น ผมเลยไม่รู้ว่าต้องสร้างยังไง
เอาไปใช้กับโปรแกรมอะไรครับ