บทความนี้ใช้ความรู้จาก
เนื่องจากใน 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 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)