Wednesday, July 11, 2018

Mengisi Path Tertutup oleh Gambar

Anda memiliki sebuah foto/gambar. Anda ingin memotongnya (crop) sedemikian sehingga tampak foto/gambar tersebut terletak di dalam suatu lintasan (path) tertutup, seperti tampak pada gambar di samping ini. Bagaimana untuk membuat itu?
Secara teknis hal ini erat kaitannya dengan hal mengarsir. Anda dapat menelusuri blog ini terkait dengan pengarsiran. Silakan ketikkan ``arsir'' pada kotak penelusuran untuk melihat tulisan-tulisan tentang pengarsiran.
Sekarang mari kita hadapi cara untuk membuat gambar seperti tampak di samping ini. Anda harus menyiapkan satu gambar/foto berbentuk *.jpg, *.png, *.pdf, atau *.eps. Untuk contoh ini saya gunakan gambar berbentuk *.jpg yang saya namai sebagai avvy.jpg. Untuk hal ini Anda memerlukan paket tikz dan kepustakaan shapes. juga (bila perlu) paket xcolor.
\usepackage[dvipsnames,x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes}
Teknisnya, kita mulai dari bentuk yang sederhana dulu, Anda membuat suatu path tertutup, misalnya suatu lingkaran. Misalnya,
\draw[thick,gray,double=Cornsilk3] (0,0) circle (1.5) ;
yang berarti Anda menggambar sebuah lingkaran berdiameter $3\,$cm yang kelilingnya berupa garis lengkung berwarna abu-abu dan garis itu ganda dengan tengahnya diwarnai Cornsilk3 (dari opsi x11names dalam paket xcolor). Kemudian, ini dia triknya, Anda tambahkan opsi path untuk gambar/foto Anda sebagai
path picture={...}
dan Anda siapkan suatu node pada tengah-tengah path itu oleh perintah
\node[] at (path picture bounding box.center) {...}
yang diisi oleh gambar/foto Anda dengan perintah dari paket graphicx (sudah termuat di dalam paket tikz), yaitu
\includegraphics[ukuran-gambar]{nama-berkas-gambar}
Perhatikan kode untuk menggambarnya (sebagai contoh) berikut ini.
\begin{tikzpicture}
\draw[thick,gray,double=Cornsilk3,path picture={
\node[] at (path picture bounding box.center) 
           {
           \includegraphics[height=3.3cm]{avvy.jpg}
           };
                                                }
] (0,0) circle (1.5) ;
\end{tikzpicture}
dan lihatlah hasilnya.
Lalu bagaimana cara membuatnya sebagai ``bentuk daun'' seperti pada gambar pertama di atas? Percayakah Anda bahwa gambar dasarnya itu berupa persegi panjang?
Benar, gambar dasarnya berupa persegi panjang yang khusus, yaitu persegi, yang dilengkungkan pada kedua sudutnya. Anda buat persegi berukuran $3\times3\,$cm$^2$. Perhatikan kode berikut ini.
(0,0)[rounded corners=50pt]--(3,0)[rounded corners=0pt]--(3,3)[rounded corners=50pt]--(0,3)[rounded corners=0pt]--cycle;
Mula-mula Anda berada pada koordinat $(0,0)$. Karena pada titik sudut $(3,0)$ akan Anda lengkungkan maka tambahkan opsi rouded corner=... yang diisi oleh derajat/tingkat kelengkungannya, misalnya $50\,$pt. Opsi tersebut mengakibatkan seluruh sudut lainnya dalam kelengkungan yang sama. Anda tidak menginginkan itu, maka sebelum titik sudut $(3,3)$ Anda cantumkan opsi untuk kelengkungannya senilai $0\,$pt. Demikianlah untuk kedua titik sudut lainnya.
Dengan cara yang sama seperti di atas maka kode untuk menggambarnya sebagai berikut.
\begin{tikzpicture}
\draw[LavenderBlush4,path picture={
\node[] at (path picture bounding box.center) 
           {
           \includegraphics[height=3.3cm]{avvy.jpg}
           };
                                   }
] (0,0)[rounded corners=50pt]--(3,0)[rounded corners=0pt]--(3,3)[rounded corners=50pt]--(0,3)[rounded corners=0pt]--cycle;
\end{tikzpicture}
Ini dia hasilnya.
Perhatikan bahwa ukuran gambar/foto yang disisipkan harus lebih besar dari ukuran gambar/path dasarnya, agar seluruh bagian gambar/foto itu termuat di dalam path tersebut.

Bagaimana? Asyik, bukan?
Berikut ini pengkodean selengkapnya beserta hasilnya untuk Anda.

Demikian semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2018

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...