21 ธันวาคม 2558

Published ธันวาคม 21, 2558 by with 0 comment

เขียนโปรแกรมเปลี่ยนภาพพื้นหลังด้วยภาษาไพทอน

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปลองเขียนโปรแกรมเปลี่ยนภาพพื้นหลังด้วยภาษาไพทอนกันครับ

บทความนี้ใช้ความรู้จาก
เนื่องจากใน Windows และบน Ubuntu มี API สำหรับเปลี่ยนภาพพื้นหลังแตกต่างกันจึงตต้องเขียนโค้ดแตกต่างกันครับ

สำหรับบน Windows

บน Windows มี API สำหรับใช้เปลี่ยนภาพพื้นหลัง คือ
SystemParametersInfoW()

รายละเอียด API ตัวนี้อ่านได้จาก https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947%28v=vs.85%29.aspx

ตัวอย่างเช่น ผมมีไฟล์ภาพชื่อ 101_1792.JPG ผมต้องการเขียนโปรแกรมเปลี่ยนจากภาพพื้นหลังเดิมไปเป็นภาพนี้

ไฟล์ภาพ 101_1792.JPG



(ภาพนี้มีลิขสิทธิ์ห้ามใช้ในทางการค้าและต้องอ้างอิงที่มารูปภาพนี้)

ไฟล์ภาพ 101_1792.JPG นี้ผมบันทึกไว้ที่ C:\\image จึงสามารถเขียนโค้ดเปลี่ยนภาพพื้นหลังด้วยภาษาไพทอนได้ดังนี้

import ctypes
from string import Template # ดึงโมดูลเทมเพลตสตริงเข้ามาใช้
imges = '101_1792.JPG' # ชื่อไฟล์รูปภาพ
path = Template('C:\\image\$imges') # path ระบบไฟล์ที่อยู่ และกำหนดให้เป็นเทมเพลตสตริงไว้สำหรับใส่ชื่อไฟล์รูปภาพ
SPI_SETDESKWALLPAPER = 20
SPIF_UPDATEINIFILE = 0x01
SPIF_SENDWININICHANGE = 0x02
ctypes.windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, path.substitute(imges=imges), SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE) # ทำการเปลี่ยนภาพพื้นหลัง

ผลลัพธ์

สำหรับบน Ubuntu (กับ Unity) และ GNOME 3


สามารถกำหนดภาพื้นหลังได้จาก API
org.gnome.desktop.background

อ่านรายละเอียด API ได้จาก https://help.gnome.org/admin//system-admin-guide/3.10/background.html.en
สามารถเขียนโค้ดเปลี่ยนภาพพื้นหลังด้วยภาษาไพทอนได้ดังนี้

import os
path = "/home/user/Pictures/x.jpg" # ที่ตั้งไฟล์รูปภาพพื้นหลัง
coderun = "/usr/bin/gsettings set org.gnome.desktop.background picture-uri "+path # รวมคำสั่งเป็นสตริงเดียวกัน
os.system(coderun) # ทำงาน

การนำไปพัฒนาต่อยอด


เขียนโปรแกรมเปลี่ยนภาพพื้นหลังแบบสุ่มของแต่ละวัน หรือ เขียนโปรแกรมสำหรับใช้เปลี่ยนภาพพื้นหลังคอมพิวเตอร์ (ตามโรงเรียนหรือบริษัท) ตามเทศกาลต่าง ๆ เป็นต้น

ลองคิดกันว่า จะนำโค้ดตัวอย่างโปรแกรมเปลี่ยนภาพพื้นหลังด้วยภาษาไพทอนไปต่อยอดอะไรได้บ้างกันดูนะครับ
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)