Farih.co.id
Home Programming Cara Membangun Aplikasi Paint Menggunakan Python

Cara Membangun Aplikasi Paint Menggunakan Python

paint brush colors and drawing paper

Alat melukis sederhana adalah salah satu aplikasi paling umum yang dapat Anda temukan di sebagian besar komputer. Ini memungkinkan seniman membuat kesalahan tanpa rasa takut, memilih warna apa pun hanya dengan mengklik tombol, dan mengubah ukuran sapuan kuas secara instan. Anda dapat menggunakannya untuk membuat logo merek, membuat konsep antarmuka pengguna, dan membuat anotasi diagram.

Jadi, bagaimana cara membuat aplikasi paint?


Modul Tkinter dan Bantal

Untuk membangun aplikasi paint, Anda memerlukan modul Tkinter dan Pillow. Tkinter adalah salah satu kerangka kerja Python teratas yang dapat Anda gunakan untuk menyesuaikan GUI Anda. Ini adalah modul GUI Python standar untuk membuat aplikasi desktop. Tkinter hadir dengan berbagai widget seperti label, entri, kanvas, dan tombol.

Pillow, cabang dari Python Imaging Library (PIL), adalah modul pemrosesan gambar untuk Python. Dengan Pillow, Anda dapat membuka, mengubah ukuran, membalik, dan memotong gambar. Anda dapat mengonversi format file, membuat aplikasi pencari resep, dan mengambil gambar acak.

Untuk menginstal modul ini, jalankan:

pip install tk pillow

Tentukan Struktur Aplikasi Cat

Mulailah dengan mengimpor modul yang diperlukan. Tentukan kelas, Aplikasi Menggambar. Atur judul, warna penunjuk, dan warna penghapus. Jadikan aplikasi terbuka dalam layar penuh. Hubungi setup_widget metode.

import tkinter as tk
from tkinter.ttk import Scale
from tkinter import colorchooser, filedialog, messagebox
import PIL.ImageGrab as ImageGrab

class DrawApp:
def __init__(self, root):
self.root = root
self.root.title(“Kids’ Paint App”)
self.root.attributes(“-fullscreen”, True)
self.pointer = “black”
self.erase = “white”
self.setup_widgets()

 

Tentukan metode yang disebut setup_widget. Tentukan label yang menampilkan judul. Atur elemen induk, teks yang ingin Anda tampilkan, gaya font, warna latar belakang, dan warna teks. Tentukan bingkai untuk palet warna. Atur elemen induk, teks yang akan ditampilkan, gaya font, dan lebar batas. Atur batas agar memiliki tampilan seperti punggung bukit dan warna latar belakang menjadi putih.

    def setup_widgets(self):
        self.title_label = tk.Label(
            self.root,
            text="Kids' Paint App",
            font=("Comic Sans MS", 30),
            bg="lightblue",
            fg="purple",
        )
        self.title_label.pack(fill=tk.X, pady=10)
        self.color_frame = tk.LabelFrame(
            self.root,
            text="Colors",
            font=("Comic Sans MS", 15),
            bd=5,
            relief=tk.RIDGE,
            bg="white",
        )
        self.color_frame.place(x=10, y=80, width=90, height=180)

Tentukan kumpulan warna untuk palet warna dalam daftar. Ulangi dan buat tombol untuk masing-masingnya. Atur elemen induk, warna latar belakang, lebar tepi, dan tampilan. Atur juga lebar dan perintah yang harus dijalankan setiap tombol saat diklik. Atur semua elemen dengan padding yang sesuai dan warna dalam dua set.

        colors = [
            "blue",
            "red",
            "green",
            "orange",
            "violet",
            "black",
            "yellow",
            "purple",
            "pink",
            "gold",
            "brown",
            "indigo",
        ]
        i, j = 0, 0
        for color in colors:
            tk.Button(
                self.color_frame,
                bg=color,
                bd=2,
                relief=tk.RIDGE,
                width=3,
                command=lambda col=color: self.select_color(col),
            ).grid(row=i, column=j, padx=2, pady=2)
            i += 1
            if i == 4:
                i = 0
                j = 1

Demikian pula, tentukan tombol untuk penghapus, satu untuk menghapus layar, dan satu lagi untuk menyimpan gambar.

        self.eraser_btn = tk.Button(
            self.root,
            text="Eraser",
            bd=4,
            bg="white",
            command=self.eraser,
            width=9,
            relief=tk.RIDGE,
            font=("Comic Sans MS", 12),
        )
        self.eraser_btn.place(x=10, y=310)
        self.clear_screen_btn = tk.Button(
            self.root,
            text="Clear Screen",
            bd=4,
            bg="white",
            command=self.clear_screen,
            width=12,
            relief=tk.RIDGE,
            font=("Comic Sans MS", 12),
        )
        self.clear_screen_btn.place(x=10, y=370)
        self.save_as_btn = tk.Button(
            self.root,
            text="Save Drawing",
            bd=4,
            bg="white",
            command=self.save_as,
            width=12,
            relief=tk.RIDGE,
            font=("Comic Sans MS", 12),
        )
        self.save_as_btn.place(x=10, y=430)
        self.bg_btn = tk.Button(
            self.root,
            text="Background",
            bd=4,
            bg="white",
            command=self.canvas_color,
            width=12,
            relief=tk.RIDGE,
            font=("Comic Sans MS", 12),
        )
        self.bg_btn.place(x=10, y=490)
        self.pointer_frame = tk.LabelFrame(
            self.root,
            text="Size",
            bd=5,
            bg="white",
            font=("Comic Sans MS", 15, "bold"),
            relief=tk.RIDGE,
        )

Tentukan widget skala untuk menambah atau mengurangi ukuran penunjuk atau penghapus. Atur elemen induk, orientasi, rentang, dan panjang dalam piksel. Tentukan kanvas dan atur elemen induk, warna latar belakang, dan lebar batas. Atur juga reliefnya agar terlihat beralur sesuai dengan tinggi dan lebarnya.

Posisikan kanvas dengan koordinat yang sesuai dan atur jangkar ke arah Barat Laut (kiri atas). Ikat B1-Gerakan ke fungsi cat. B1 mengacu pada tombol kiri mouse yang ditekan dan Gerakan merujuk pada gerakan tersebut. Secara keseluruhan, Anda menggunakannya untuk melacak pergerakan mouse saat Anda menekan tombol kiri.

        self.pointer_frame.place(x=10, y=580, height=150, width=70)
        self.pointer_size = Scale(
            self.pointer_frame, orient=tk.VERTICAL, from_=48, to=1, length=120
        )
        self.pointer_size.set(1)
        self.pointer_size.grid(row=0, column=1, padx=15)
        self.canvas = tk.Canvas(
            self.root, bg="white", bd=5, relief=tk.GROOVE, height=650, width=1300
        )
        self.canvas.place(x=160, y=120, anchor="nw")
        self.canvas.bind("<B1-Motion>", self.paint)

Tentukan Fitur Aplikasi Paint

Tentukan metode, cat. Untuk melukis, aplikasi akan terus menggambar oval kecil. Kurangi 2 dari X Dan kamu koordinat kejadian mouse untuk menentukan pojok kiri atas oval. Tambahkan 2 untuk menentukan sudut kanan bawah oval. Buat oval menggunakan koordinat pembatas ini.

Atur warna isian, warna garis luar, dan lebar sesuai pilihan penunjuk.

    def paint(self, event):
        x1, y1 = (event.x - 2), (event.y - 2)
        x2, y2 = (event.x + 2), (event.y + 2)
        self.canvas.create_oval(
            x1,
            y1,
            x2,
            y2,
            fill=self.pointer,
            outline=self.pointer,
            width=self.pointer_size.get(),
        )

Tentukan tiga fungsi, pilih_warna, penghapusDan, layar_jernih. Itu pilih_warna metode mengambil warna dan mengatur penunjuknya sesuai. Itu penghapus metode menyetel penunjuk agar memiliki efek seperti penghapus dan membuatnya menggambar garis transparan. Itu layar_jernih metode menghapus semua item di kanvas.

    def select_color(self, col):
        self.pointer = col

def eraser(self):
self.pointer = self.erase

def clear_screen(self):
self.canvas.delete(“all”)

 

Tentukan metode, kanvas_warna. Buka pemilih warna dengan semua warna berbeda. Kembalikan Tuple yang berisi warna di dalamnya RGB format dan format heksadesimal. Jika pengguna memilih warna, gunakan konfigurasikan metode untuk mengatur warna latar belakang. Atur warna penghapus agar sama dengan warna latar belakang.

    def canvas_color(self):
        color = colorchooser.askcolor()
        if color:
            self.canvas.configure(background=color[1])
            self.erase = color[1]

Tentukan metode, simpan_as. Buka kotak dialog file yang meminta pengguna untuk memilih nama dan jalur file. Jika pengguna memilih jalur, gunakan Pillow’s Ambil Gambar kelas untuk menangkap seluruh layar. Pangkas gambar menggunakan koordinat yang ditentukan untuk mendapatkan wilayah kanvas. Bereksperimenlah dengan koordinat untuk mengambil bagian yang diinginkan.

Simpan hasil ini ke jalur file yang diinginkan. Menampilkan kotak pesan yang menginformasikan pengguna bahwa program telah berhasil menyimpan cat sebagai gambar. Jika terjadi kesalahan, ini akan menampilkan kesalahan yang sesuai.

    def save_as(self):
        file_path = filedialog.asksaveasfilename(
            defaultextension=".jpg", filetypes=[("Image files", "*.jpg")]
        )
        if file_path:
            try:
                y = 148
                x = 200
                y1 = 978
                x1 = 1840
                ImageGrab.grab().crop((x, y, x1, y1)).save(file_path)
                messagebox.showinfo("Save Drawing", "Image file saved successfully!")
            except Exception as e:
                messagebox.showerror("Error", f"Failed to save the image file: {e}")

Buat sebuah instance dari karena dan itu Aplikasi Menggambar kelas. Itu loop utama() fungsi memberitahu Python untuk menjalankan loop acara Tkinter dan mendengarkan acara sampai Anda menutup jendela.

if __name__ == "__main__":
    root = tk.Tk()
    app = DrawApp(root)
    root.mainloop()

Menguji Berbagai Fitur Lukisan Menggunakan Python

Saat Anda menjalankan program melukis, Anda akan melihat aplikasi dengan palet warna, empat tombol, satu penggeser, dan kanvas untuk melukis:

Layar Awal Aplikasi Cat

Klik warna apa saja untuk memilihnya. Anda kemudian dapat menggambar di kanvas dengan warna tersebut dengan tombol kiri mouse:

Menggambar menggunakan warna cat yang berbeda

Saat mengklik Penghapus tombol dan menyeret penggeser secara vertikal ke atas, Anda akan memilih penghapus dan memperbesar ukurannya. Uji penghapus dengan menyeretnya ke atas gambar Anda untuk menghapus goresannya.

Menambah Ukuran dan Menghapus di Tengah

Ketika Anda mengklik Hapus Layar tombol, program akan menghapus gambar Anda sebelumnya. Klik Latar belakang tombol untuk membuka palet warna dan menggunakannya untuk mengubah warna latar belakang.

Membersihkan layar dan menambahkan warna latar belakang

Saat mengklik Simpan Gambar tombol, kotak dialog file terbuka. Pilih jalur dan nama file, dan program akan menyimpannya.

Menyimpan cat sebagai gambar

Meningkatkan Aplikasi Cat

Anda dapat meningkatkan fungsionalitas aplikasi cat dengan menambahkan opsi untuk menambahkan bentuk. Anda dapat memberikan pilihan untuk memilih jenis kuas dan opacity. Tambahkan opsi untuk menambahkan teks dan stiker. Tambahkan opsi untuk membatalkan, mengulang, mengubah ukuran, dan membalik gambar. Ini akan membuat proses menggambar lebih lancar.

Untuk membuat bentuk, Anda dapat menggunakan metode seperti create_rectangle, create_oval, create_line, dan create_polygon. Untuk menambahkan teks dan gambar, gunakan metode create_text dan create_image. Untuk mengubah ukuran dan membalik gambar, Anda dapat menggunakan metode pengubahan ukuran dan transposisi Pillow.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad