Hi Alameer Ali, Show Just changing the file extension from “tif” to “png” isn’t going to (Some image processing software is smart enough to ignore the file Does something like this help? PIL adalah library open-source tambahan untuk Python yang fungsi utamanya adalah memanipulasi file gambar. PIL diciptakan oleh Fredrik Lundh pada tahun 1995, dan pengembangannya dihentikan pada tahun 2011. PIL di-fork dan diteruskan oleh library Pillow. Pillow mendukung banyak format file populer, misalnya PNG, JPG/JPEG, TIFF, dan BMP. Jika perlu, Pillow dan Python mendukung library decoder tambahan. Tipe manipulasi antara lain masking, filtering, enhancement, menambahkan teks, manipulasi per pixel, dan lain-lain. Persiapan EnvironmentSiapkan dan gunakan venv khusus yang masih bersih (saran) dengan 0. Install Pillow menggunakan 1
(Pillow tidak dapat dipasang di env yang sama dengan PIL.) Output:
Untuk mengimpor Pillow:
Perhatikan bahwa keyword untuk nama modulnya adalah PIL, bukan Pillow untuk alasan backward compatibility. Kita akan menggunakan kelas 2 di latihan ini.Note: untuk linux, install lib yang dibutuhkan di sistem:
Gambar untuk LatihanBoleh apa saja, yang penting berukuran kecil supaya tidak menyebabkan lambat dan no profanity, please... Btw, ini gambar Lena Forsén: Semua instruksi di bawah bisa dikerjakan dalam satu file python. Run dengan cara:
Membuka dan Menyimpan GambarMetode 3 pada latihan ini cukup sederhana. Lihat screenshot kode di bawah.Metode 4 digunakan untuk menampilkan file dengan program yang disediakan OS. Metode ini dapat menimbulkan error jika sistem tidak mendukung.Pada saat menyimpan gambar menggunakan 5, kita bisa mengubah formatnya dengan cara menyebutkan nama file lengkap dengan ekstensi atau secara eksplisit:
dimana
Atribut GambarAda beberapa atribut dari obyek gambar yang bisa digunakan untuk mengetahui info tentang obyek gambar itu:
Contoh pemanggilan atribut (menggunakan Python interpreter di terminal Linux):
Mengubah Dimensi Gambar (Resize)Untuk mengubah dimensi (lebar x tinggi) gambar, kita bisa menggunakan 3 dengan beberapa parameter.
dimana
Membuat ThumbnailOperasi ini mirip dengan resize, namun pembuatan thumbnail memperhatikan aspect ratio, sehingga dimensi gambar yang dihasilkan belum tentu sesuai dengan parameter yang kita masukkan. Metodenya adalah 4.
Oiya, apa itu thumbnail? Thumbnail adalah versi gambar dan video yang sudah diseragamkan dimensinya, misalnya ke 256 x 256 pixel. Thumbnail biasanya disimpan bersama gambar/video asli. Tujuan thumbnail antara lain mengurangi bandwidth dan waktu download. Gambar asli hanya ditampilkan jika memang diperlukan. Update 4 Januari 2022: Mohon maaf metode thumbnail memodifikasi citra secara in-place. Kode di atas sudah saya ubah untuk memperbaiki kesalahan sebelumnya. Memotong (Cropping) GambarSeperti bisa dilihat di bawah, metodenya adalah 5.
Perhatikan, pada sistem koordinat kartesian untuk Pillow, titik 6 berada di kiri atas gambar. Sintaksnya adalah 0Untuk kode di atas, ilustrasinya sbb: Ini akan menghasilkan cropped image dengan dimensi (560 - 340) x (230 - 20) = 220 x 210 Menambahkan Border pada GambarBorder bisa ditambahkan dengan cara membuat gambar baru. Pada contoh ini, kita akan membuat border dengan tebal 10 pixel, maka gambar yang akan kita buat (dengan latar belakang red) harus 20 pixel lebih besar. 1Memutar (Rotate) GambarKita bisa menggunakan metode 7 dengan satu parameter: 2Beberapa parameter rotasi gambar:
Rotasi berlawanan jalan jarum jam. Kalau mau lebih bebas lagi, kita bisa menggunakan 1: 3dimana
FlipMasih menggunakan metode 7: 4Dan tentu saja masih ada flip atas-bawah (axis horizontal): 7.Brightness, Contrast, dan SharpnessUntuk ketiga tipe manipulasi ini, ada yang disebut faktor 1 (factor of one). Nilai 1 ini adalah gambar asli sebelum manipulasi. Kelas di library Pillow yang akan kita gunakan adalah 8. 5BrightnessUntuk faktor: brighter > 1 > darker 6ContrastUntuk faktor: kontras > 1 > kelabu 7SharpnessUntuk faktor: tajam > 1 > buram 8WatermarkKode di bawah adalah untuk menambahkan watermark berupa teks. Untuk latihan, gunakan nomor pokok mahasiswa (NPM) sebagai teks watermark. Pada contoh ini, lokasi watermark adalah di kanan bawah gambar dengan margin 15 pixel agar tulisan tidak terlalu ke tepi. Penting: font Arial bisa diunduh disini. Taruh file 9 di direktori yang sama dengan kode program. 9Gambar dengan watermark: ## Tugas (Detail submisi tugas yang belum ada di sini, saya lampirkan saat/setelah meeting ya) Kerjakan semua demo di atas dalam satu file Python (lebih dari satu boleh kalau mau repot) (jangan lupa sertakan file gambar yang kalian pakai ya...), unggah **dua** file tersebut ke Git, lalu email ke saya. Waktu pengerjaan satu minggu. Gambar input (yang digunakan untuk `open()`) tidak boleh sama dengan di blog ini ya.. Cari gambar lain yang ukurannya <1 MB, kalau bisa dimensinya tidak square. Hal-hal yang harus di demokan di dalam program: 1. Membuka, menyimpan file ke format lain, menampilkan gambar di OS 2. Menampilkan 7 atribut gambar (nama file, ukuran, dsb..) 3. Mengubah ukuran (resize) lalu save 4. Membuat thumbnail lalu save 5. Cropping lalu save 6. Membuat gambar baru dengan border, lalu save 7. Memutar gambar lalu save 8. Membalik gambar (flip) lalu save 9. Memodifikasi brightness, contrast, dan sharpness, lalu save 10. Menambahkan watermark, lalu save |