Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Render Text and Shapes on Images dalam PHP

by
Difficulty:IntermediateLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Diangr (you can also view the original English article)

Di artikel sebelumnya, kami fokus pada pemuatan dan manipulasi gambar dengan PHP. Kami belajar cara merotasi, mengubah ukuran, skala, atau membalik gambar. Kami juga belajar tentang filter yang berbeda dan matriks konvolusi. Tutorial tersebut juga mencakup beberapa penggunaan praktis dari pustaka GD seperti mengubah ukuran semua gambar dalam direktori atau menambahkan tanda air pada banyak gambar sekaligus.

Selain menggunakan GD untuk memanipulasi gambar biasa, kita juga dapat membuat gambar dari awal. Fungsi yang berbeda di perpustakaan dapat digunakan untuk menggambar bentuk dasar seperti elips, lingkaran, persegi panjang, poligon, dan garis sederhana. Dengan beberapa matematika, bentuk-bentuk ini dapat menciptakan pola yang bagus. Ada juga fungsi yang tersedia untuk menggambar teks pada gambar yang ditampilkan, yang membuka banyak kemungkinan.

Tutorial ini akan mengajarkan anda cara menggambar bentuk dasar dalam PHP dan cara merender teks menggunakan font favorit anda.

Menggambar Bentuk Dasar dalam PHP Dengan GD

Kita akan belajar tentang bentuk dasar di bagian ini dan kemudian menutupi ketebalan garis, kuas, dan gaya garis nanti.

Menggambar garis

Anda dapat menggambar garis lurus sederhana antara dua titik yang diberikan menggunakan fungsi imageline ($image, $x1, $y1, $x2, $y2, $color). Parameter $image adalah sumber gambar yang akan dibuat sebelumnya menggunakan fungsi seperti imagecreatetruecolor() atau imagecreatefromjpeg(). Kami akan menggunakan magecreatetruecolor() sepanjang tutorial ini untuk membuat gambar baru dari awal. Fungsi ini akan menggambar garis horizontal jika $y1 sama dengan $y2. Demikian pula, ia akan menggambar garis vertikal jika $x1 sama dengan $x2.

Gambarkan Lingkaran dan Arcs

Fungsi imagearc ($image, $cx, $cy, $width, $height, $start, $end, $color) dapat menggambar busur lingkaran menggunakan $cx dan $cy sebagai pusatnya. Parameter $lebar dan $tinggi menentukan ukuran busur pada sumbu yang berbeda. Parameter $start dan $end menentukan sudut awal dan akhir arc dalam derajat. Jika anda ingin menggambar busur lengkap dari 0 hingga 360 derajat, anda dapat menggunakan fungsi gambar alternatif imageellipse($image, $cx, $cy, $width, $height, $color).

Gambar Rectangles dan Polygons

Anda dapat menggambar persegi panjang di atas gambar menggunakan fungsi imagerectangle ($image, $x1, $y1, $x2, $y2, $color). Nilai $x1 dan $y1 menentukan sudut kiri atas persegi panjang. Nilai $x2 dan $y2 menentukan sudut kanan bawah. Ada juga fungsi imagepolygon ($image, $points, $num_points, $color), yang dapat membuat poligon dengan sejumlah sisi atau titik. Parameter $points adalah larik tempat dua elemen dipasangkan bersama untuk mendapatkan koordinat titik tertentu.

Fungsi lain yang disebut imageopenpolygon() telah ditambahkan ke PHP 7, yang tidak menarik garis antara titik pertama dan terakhir.

Puting It Together untuk Membuat Gambar

Dalam contoh berikut, kami telah menggunakan semua fungsi ini untuk membuat gambar garis dengan sebuah pondok, matahari, dan tanah.

Yang penting di sini adalah hanya untuk mengetahui nilai koordinat yang berbeda. Saya ingin menggambar semuanya relatif terhadap ukuran gambar aslinya, jadi saya menggunakan variabel $img_height dan $img_width untuk menghitung koordinat titik yang berbeda.

Line Drawing in PHP GD

Mengontrol Ketebalan, Gaya, dan Isi Warna Garis Pengatur

Gambar di atas memiliki beberapa masalah seperti garis yang sangat tipis dan tidak ada pewarnaan. Semua masalah ini dapat diperbaiki dengan mudah menggunakan fungsi seperti imagesetthickness() dan imagefilledrectangle().

Ketebalan garis

Fungsi imagesetthickness ($image, $thickness) mengatur ketebalan garis yang diberikan saat menggambar persegi panjang, poligon, busur, dll. Misalnya, menyetel $thickness ke 5 akan membuat gambar apa pun digambar menggunakan imagerectangle(), imagearc(), imagepolygon(), dll. 5 piksel tebal.

Menggambar Bentuk Penuh

Setiap fungsi gambar juga memiliki versi warna yang diisi yang mengisi sosok tertentu dengan warna yang diberikan. Sebagai contoh, imagefilledrectangle() akan mengisi persegi panjang yang ditarik dengan warna yang diberikan.

Menggunakan Brushes

Salah satu fungsi GD yang sangat berguna adalah imagesetbrush ($image, $brush). Parameter $brush dalam fungsi ini hanyalah sumber gambar lain yang dapat digunakan untuk menggambar garis. Misalnya, anda bisa menggunakan gambar vektor transparan bunga sebagai kuas untuk menambahkan pola bunga yang bagus ke gambar anda. code snippet yang diberikan di bawah ini ditulis untuk menggunakan gambar awan sebagai sikat ketika menggambar titik. Ini menambahkan satu awan di langit kita.

Saya menemukan cloud image ini di Pixabay dan menurunkannya ke ukuran yang sesuai untuk proyek kami.

Kode lengkap untuk gambar pondok diberikan di bawah ini. Kami hanya menambahkan dua versi masing-masing gambar, satu untuk menggambar garis luar dan yang lainnya untuk mengisi warna.

Ini adalah hasil akhir dari kode GD PHP di atas.

PHP GD Filled Hut Color

Rendering Teks pada Gambar

GD PHP dilengkapi dengan empat fungsi berbeda untuk memungkinkan anda membuat banyak karakter atau hanya satu karakter dalam arah horizontal atau vertikal. Fungsi-fungsi ini adalah imagechar(), imagecharup(), imagestring(), dan imagestringup(). Mereka semua menerima parameter enam yang sama, jadi kita hanya akan membahas fungsi imagechar() di sini.

Fungsi parameter $font pada imagechar($image, $font, $x, $y, $string, $color) hanyalah ukuran dari teks yang ditampilkan. Hanya menerima nilai integer dari 1 hingga 5. Parameter $string adalah teks yang ingin anda render. Jika anda meneruskan string multi-karakter ke fungsi-fungsi char, hanya karakter pertama yang akan ditampilkan pada gambar. Fungsi imagecharup() dan imagestringup() akan merender teks secara vertikal dari bawah ke atas.

Ketika datang ke render teks, empat fungsi yang kita diskusikan di atas sangat terbatas. Anda akan menemukan bahwa bahkan nilai ukuran font terbesar terlalu kecil untuk penggunaan normal. Juga, teks hanya dapat ditulis secara horizontal dan vertikal.

Untungnya, GD juga memiliki fungsi imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text) yang dapat merender teks dalam font apa pun yang anda inginkan. Parameter $fontfile digunakan untuk menentukan path ke font TrueType yang ingin anda gunakan untuk menampilkan teks. Parameter $x dan $y menentukan posisi awal teks yang dirender.

Contoh berikut menggunakan semua fungsi ini untuk menciptakan beberapa efek teks yang bagus.

Seperti yang anda lihat, kami telah menerjemahkan teks yang sama dengan font yang sama dalam posisi yang sedikit berbeda untuk menciptakan beberapa efek seperti bayangan teks dasar. Yang penting untuk diingat adalah bahwa teks yang dirender oleh fungsi teks apa pun akan menyembunyikan teks di bawahnya dalam hal tumpang tindih. Berikut adalah gambar akhir yang diperoleh setelah menjalankan kode di atas.

PHP GD Text

Pikiran Akhir

Tujuan dari tutorial ini adalah untuk membuat anda berkenalan dengan berbagai fungsi GD untuk menggambar bentuk dasar dari awal dalam PHP. Dengan bantuan sedikit matematika, anda akan dapat menggunakan fungsi-fungsi ini untuk membuat bentuk yang lebih rumit seperti poligon biasa, persegi panjang bulat, dll.

PHP GD juga memiliki beberapa fungsi yang sangat berguna untuk menampilkan teks pada suatu gambar. Penggunaan font yang bagus akan memastikan bahwa teks yang ditampilkan tidak terlihat aneh ketika ditempatkan pada gambar biasa yang diambil dari jalur file yang berbeda.

Apakah anda membuat efek teks yang lebih mewah di PHP? Silakan berbagi dengan kami di komentar.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.