Mulai April 2020, bandithijo.com akan menggunakan GitHub subdomain menjadi bandithijo.github.io. Penggunaan domain .com tidak sejalan dengan cara pandang saya terhadap sebuah blog, dimana blog harus bisa tetap hidup tanpa saya. Terima kasih (^_^) (bandithijo, 2020/03/25) ●

Menambahkan Frame pada Hasil ScreenShot dengan ImageMagick

Ditulis: 2020/07/25
Ruby Tips

بسم الله الرحمن الرحيم

Sekenario Masalah

Saya baru-baru saja menyeragamkan semua produksi video yang saya jadikan vlog di YouTube.

Dalam video tersebut, saya menggunakan frame seperti ini:

gambar_1

Nah, permasalahannya adalah:

Saya ingin membuat hasil screenshot pada laptop ThinkPad X61 dengan resolusi layar 1024x768 ini langsung otomatis memiliki frame tersebut.

Saat ini, hasil screenshot yang diambil langsung dari laptop ThinkPad X61 saya, seperti ini:

gambar_2

Nah, hasil screenshot di atas memiliki resolusi 1024x768.

Saya ingin menggabungkan hasil screenshot dengan frame.

gambar_3

Pemecahan Masalah

Solusinya sangat mudah untuk ditemukan.

Saya langsung terpikir menggunakan ImageMagick, tapi saya tidak pernah benar-benar mencoba dan mengulik banyak hal dengan tools ini. Biasanya, saya hanya membaca manual, kalau saya perlukan. Saya seperti sekarang. Hehe.

Kita akan menggunakan Image Sequence Operator yang bernama -composite.

Bentuk commandnya seperti ini

$ convert frame.png target.png -geometry WxH^ -composite hasil.png

frame.png adalah gambar yang akan dijadikan frame.

target.png adalah gambar hasil screenshot.

-geometry WxH^ adalah ukuran/resolusi dari gambar target.png.

Nah, kemudian tinggal digabungkan dengan aplikasi pembuat screenshot.

Dalam hal ini, saya menggunakan scrot.

Maka seperti inilah yang saya gunakan.

$ scrot "Screenshot_%Y-%m-%d_%H-%M-%S.png" -e "convert ~/pic/ScreenShots/obs-frame.png *.png -geometry 1024x768^ -composite *.png; mv *.png ~/pic/ScreenShots/"

Dibagian akhir dari proses tersebut, saya memindahkan hasil screenshot ke direktori ~/pic/ScreenShots/ menggunakan command mv. Teman-teman dapat menyesuaikan dengan direktori screenshot yang teman-teman miliki.

Kalau mau ditambahkan di keybind Window Manager juga bisa. Tinggal tambahkan di konfigurasi Window Manager masing-masing.

Misal, seperti saya, sedang menggunakan BSPWM.

1
2
3
4
5
6
7
8
9
10
11
# ~/.config/sxhkd/sxhkdrc

# ...
# ...

# screenshot
super + Print
    scrot "Screenshot_%Y-%m-%d_%H-%M-%S.png" \
    -e "convert ~/pic/ScreenShots/obs-frame.png *.png -geometry 1024x768^ \
    -composite *.png; mv *.png ~/pic/ScreenShots/" \
    ; notify-send "Scrot" "Screen has been captured!"

Hasilnya seperti ini.

gambar_4

Tambahan

Terkadang saya tidak ingin setiap hasil screenshot langsung diframing. Namun, saya malas menulis command ImageMagick yang panjang. Maka sayapun membuat Ruby script untuk menghandle hal tersebut.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env ruby

# Please write your screenshot dir with full path. Later, I'll improve this.
ss_dir = "/home/bandithijo/pic/ScreenShots"
ss_frame = "/home/bandithijo/pic/ScreenShots/obs-frame.png"
Dir.chdir(ss_dir)
list_file = %x(ls -p | grep -v /)
files = list_file.split(" ")
target_file = files.last
target_file_mod = files.last.split("").insert(-5, 'X').join

%x(convert #{ss_frame} #{target_file} -geometry 1024x768^ \
-set gamma 2.2 -composite #{target_file_mod})

puts "SS_DIR: #{ss_dir}"
puts "SOURCE: #{target_file}
TARGET: #{target_file_mod}
FRAMING SUCCESS!"

Mantap!!!

Saya rasa hanya ini yang dapat saya tuliskan saat ini.

Mudah-mudahan dapat bermanfaat untuk teman-teman.

Terima kasih.

(^_^)

Referensi

  1. imagemagick.org/script/command-line-processing.php#geometry
    Diakses tanggal: 2020/07/25

  2. PNG image becomes too bright
    Diakses tanggal: 2020/08/03

Penulis

bandithijo

BanditHijo adalah nama pena saya – meminjam istilah keren dari para penulis. Teman-teman menyebut saya sebagai GNU/Linux Enthusiast. Saya memang gemar mengutak-atik sistem operasi ini. Bukan karena hobi tapi karena saya perlu untuk menggunakannya. Hehe.

- Rizqi Nur Assyaufi

Berlangganan via Email

Jangan sampai ketinggalan kabar dan info terbaru mengenai BanditHijo (R)-Chive.
Ayo bergabung!

28dc03c11c68cf4aadee6d17e41ef5d4cac75aea