Rumah >pembangunan bahagian belakang >tutorial php >PHP Master | Tanda air imej dengan Imagick

PHP Master | Tanda air imej dengan Imagick

William Shakespeare
William Shakespeareasal
2025-03-01 09:42:10208semak imbas

PHP Master | Tanda air imej dengan Imagick

Takeaways Key

    Pelanjutan Imagick dalam PHP menyediakan fungsi yang menjadikan imej watermarking mudah dan cekap. Sebelum memulakan, pastikan lanjutan Imagick tersedia di hos anda dan mempunyai beberapa gambar untuk menguji keberkesanan watermark.
  • Watermark yang berkesan harus dapat dilihat terhadap pelbagai latar belakang, cukup telus untuk melihat imej asal, cukup besar untuk menampung sebahagian besar imej asal dan harus kontras. Fail PNG dengan kelegapan kira -kira 40% dicadangkan untuk digunakan sebagai tanda air.
  • Menambah tanda air melibatkan pembukaan imej asal dan tanda air, melapisi tanda air pada imej, dan menjimatkan atau mengeluarkan hasilnya. Jika saiz imej asal berbeza -beza, mungkin perlu untuk skala watermark dan meletakkannya di pusat imej. Imagick menyediakan API pemprosesan imej yang komprehensif untuk memudahkan operasi ini.
  • Bayangkan seorang kawan anda mendekati anda suatu hari dan ingin anda membina sebuah laman web supaya dia dapat mempamerkan fotografinya. Dia mahu dapat memuat naik gambarnya dengan mudah dan memaklumkannya supaya orang tidak dapat mencuri mereka dengan mudah. "Jangan risau!" Anda memberitahunya, kerana anda tahu terdapat fungsi yang disediakan oleh lanjutan Imagik yang menjadikan imej watermarking menjadi angin dalam PHP. Artikel ini berkongsi beberapa petunjuk mengenai apa yang membuat watermark yang berkesan, dan kemudian menunjukkan kepada anda cara menggunakan fungsi Imagick untuk menambah tanda air ke imej anda. Sebelum anda memulakan, pastikan lanjutan Imagick tersedia di hos anda. Ia juga dinasihatkan untuk mencari beberapa gambar yang anda boleh menguji tanda air untuk mengukur keberkesanannya.
apa yang menjadikan watermark yang baik

Untuk tanda air menjadi berkesan, ia perlu dilihat terhadap pelbagai latar belakang. Saya cadangkan anda cuba mencari sekurang -kurangnya satu foto ujian yang sangat ringan, dan satu lagi yang sangat gelap. Sebagai contoh, kedua -dua gambar anjing padang rumput dari Shutterstock membuat pasangan ujian yang baik:

Adalah penting bahawa watermark cukup telus untuk anda masih dapat melihat imej asal, tetapi cukup legap sehingga sukar bagi orang yang tidak bertanggungjawab untuk dikeluarkan. Tahap kelegapan 40% mungkin merupakan titik permulaan yang baik, dan anda boleh meningkatkannya atau mengurangkannya bergantung kepada keadaan. Anda juga mahu tanda air menjadi cukup besar. Jika anda hanya meletakkan tanda air kecil di sudut kanan bawah, ia adalah sasaran utama untuk dipotong. Tanda air yang meliputi sebahagian besar imej asal lebih berkesan. Lihat bagaimana Istockphoto dan Shutterstock mengisar kerja mereka untuk contoh. Akhirnya, tanda air sepatutnya berbeza. Pertimbangkan untuk membuat tanda air gelap dengan strok cahaya atau visa-versa. Inilah yang dilakukan oleh Istockphoto dan Shutterstock, dan tanda mereka mudah dilihat pada semua imej mereka sama ada imej asalnya ringan atau gelap. Untuk artikel ini saya akan menggunakan ini sebagai Watermark saya, fail PNG dengan kira -kira 40% kelegapan:

PHP Master | Tanda air imej dengan Imagick

Menambah watermark

Menambah Watermark adalah proses 4-langkah yang mudah: Pertama anda membuka imej asal, seterusnya anda membuka watermark, maka anda melapisi watermark di atas imej pertama, dan kemudian simpan atau output hasilnya. Inilah kod:

Anda boleh membuka imej dari jalan dengan membuat contoh baru kelas Imagick dan menggunakan kaedah ReadImage (). Satu perkara yang baik tentang Imagick adalah bahawa ia boleh membuka bila -bila masa fail yang ImageMagick disusun untuk menyokong, jadi anda tidak perlu secara jelas memberitahu bahawa fail itu adalah JPEG atau PNG; Ia cukup pintar untuk memikirkannya sendiri. Untuk melapisi imej watermark, anda menggunakan kaedah komposit (). Dalam contoh ini, kaedah ini menerima empat parameter: yang pertama adalah imej yang akan dilapisi, yang kedua adalah pemalar yang dipratentukan yang mewakili jenis operasi komposisi Imagick harus dilakukan (ada keseluruhan membunuh untuk mencapai kesan yang berbeza), dan parameter ketiga dan keempat adalah koordinat X dan Y di mana untuk menempatkan air di atas piksel dari piksel dari piksel di atas piksel dari piksel di atas piksel dari piksel di atas piksel di atas piksel dari piksel dari peksi di atas. Secara lalai, PHP menganggap output skrip anda adalah HTML dan menghantar header jenis kandungan
<span><span><?php
</span></span><span><span>// Open the original image
</span></span><span><span>$image = new Imagick();
</span></span><span><span>$image->readImage("/path/to/image.jpg");
</span></span><span>
</span><span><span>// Open the watermark
</span></span><span><span>$watermark = new Imagick();
</span></span><span><span>$watermark->readImage("/path/to/watermark.png");
</span></span><span>
</span><span><span>// Overlay the watermark on the original image
</span></span><span><span>$image->compositeImage($watermark, imagick<span>::</span>COMPOSITE_OVER, 0, 0);
</span></span><span>
</span><span><span>// send the result to the browser
</span></span><span><span>header("Content-Type: image/" . $image->getImageFormat());
</span></span><span><span>echo $image;</span></span>
> html secara automatik. Jika anda mengeluarkan imej, penyemak imbas tidak akan mengendalikannya dengan betul kerana tajuk memberitahu anda menghantar teks. Untuk mengelakkan pelawat anda disambut dengan halaman yang gibberish, anda perlu mengarahkan PHP untuk menghantar header yang lebih sesuai menggunakan header () sebelum menghantar imej. Daripada hanya pengkodan keras nilai tajuk kandungan, contohnya mengakses jenis imej menggunakan Imagick sendiri yang kemudiannya digunakan untuk membina jenis mime yang sesuai dengan cepat. Inilah hasil akhir, imej yang ditanda air:

Mengurangkan watermark

Contoh terdahulu memposisikan watermark di bahagian atas imej asal. Walaupun pendekatan ini baik -baik saja jika anda mengetahui saiz imej asal terlebih dahulu kerana anda boleh membuat tanda air dengan dimensi yang sesuai, anda mungkin mahu pendekatan yang lebih mantap sekiranya saiz imej asal berbeza -beza. Pendekatan sedemikian mungkin untuk meletakkan watermark di tengah -tengah imej, dan skala air terlebih dahulu jika ia lebih besar daripada imej asal.
<span><span><?php
</span></span><span><span>// Open the original image
</span></span><span><span>$image = new Imagick();
</span></span><span><span>$image->readImage("/path/to/image.jpg");
</span></span><span>
</span><span><span>// Open the watermark
</span></span><span><span>$watermark = new Imagick();
</span></span><span><span>$watermark->readImage("/path/to/watermark.png");
</span></span><span>
</span><span><span>// Overlay the watermark on the original image
</span></span><span><span>$image->compositeImage($watermark, imagick<span>::</span>COMPOSITE_OVER, 0, 0);
</span></span><span>
</span><span><span>// send the result to the browser
</span></span><span><span>header("Content-Type: image/" . $image->getImageFormat());
</span></span><span><span>echo $image;</span></span>
GetImageWidth () dan kaedah getImageHeight () mengembalikan lebar dan ketinggian imej masing -masing, diukur dalam piksel. Dengan membandingkan lebar dan ketinggian imej watermark ke imej asal, anda boleh menentukan sama ada ia perlu untuk mengubah saiz watermark supaya ia sesuai dengan imej yang lebih kecil. Saiz semula watermark dicapai dengan memanggil kaedah ScaleImage () yang mengambil lebar dan ketinggian yang dibenarkan. Kaedah ini akan skala imej ke bawah supaya lebar maksimum tidak lebih besar daripada lebar yang dibenarkan, dan ketinggian maksimum tidak lebih besar daripada ketinggian yang dibenarkan, sambil mengekalkan nisbah aspek imej. Dan inilah imej yang ditanda air yang dihasilkan dari contoh ini:

PHP Master | Tanda air imej dengan Imagick

Ringkasan

Perpustakaan Imagick menyediakan API pemprosesan imej yang komprehensif. Sesungguhnya, anda telah melihat betapa mudahnya untuk membuka fail imej, menentukan dimensi dan format imej mereka, skala mereka, dan overlay satu di atas yang lain untuk menanda air mereka. Biasanya saya mencadangkan dokumentasi pada php.net jika anda ingin mengetahui lebih lanjut mengenai keupayaan lanjutan, tetapi dalam hal Imagick dokumentasi adalah jerawatan. Banyak kaedah hanya mempunyai senarai parameter yang diberikan. Oleh itu, jika anda ingin mengetahui lebih lanjut, php.net masih merupakan tempat yang baik untuk bermula tetapi anda mungkin perlu mencari maklumat lanjut untuk kaedah dalam beberapa bentuk lain (aplikasi baris arahan, contohnya) di laman ImageMagick itu sendiri dan Google.

Soalan Lazim (Soalan Lazim) Mengenai Imej Watermarking

Apakah tujuan imej watermark? Terutamanya, ia adalah satu cara untuk melindungi harta digital atau intelektual, satu kaedah untuk mengelakkan penggunaan atau replikasi imej yang tidak dibenarkan tanpa memberi kredit yang sewajarnya kepada pemilik yang sah. Tanda air boleh menjadi logo, tandatangan, atau setem yang mengenal pasti pencipta imej. Mereka juga berfungsi sebagai alat pemasaran, secara halus mempromosikan jenama pencipta apabila imej dikongsi atau digunakan.

Bagaimana saya boleh membuat tanda air untuk imej saya?

Terdapat beberapa cara untuk membuat tanda air untuk imej anda. Anda boleh menggunakan perisian reka bentuk grafik seperti Adobe Photoshop atau alat dalam talian percuma seperti Watermark.ws. Platform ini membolehkan anda memuat naik logo anda atau mana -mana teks dan menyesuaikan kelegapannya untuk membuat tanda air. Anda kemudian boleh menyimpan watermark ini dan memohon kepada imej anda. Tujuan watermark adalah untuk melindungi hak harta intelektual Pencipta. Mengeluarkannya boleh melanggar hak -hak ini dan membawa kepada akibat undang -undang. Ini membolehkan anda memuat naik pelbagai imej dan memohon watermark anda kepada mereka semua sekaligus, menjimatkan masa dan usaha anda. Contoh -contoh alat tersebut termasuk watermark.ws dan watermark visual.

Di manakah saya harus meletakkan watermark saya? Walau bagaimanapun, ia secara amnya disyorkan untuk meletakkannya di mana ia dapat dilihat dengan mudah tetapi tidak mengalihkan perhatian dari imej. Penempatan biasa termasuk bahagian bawah kanan atau kiri, atau di tengah -tengah imej.

Bolehkah saya menyesuaikan rupa watermark saya? Anda biasanya boleh menyesuaikan saiz, warna, kelegapan, dan kedudukan. Sesetengah alat juga membolehkan anda menambah kesan seperti bayang -bayang atau cahaya. Jika anda bimbang tentang kecurian imej atau ingin meningkatkan penglihatan jenama, watermarking boleh bermanfaat. Walau bagaimanapun, sesetengah pencipta memilih untuk tidak menandai imej mereka untuk mengekalkan pandangan yang bersih dan tidak terhalang mengenai kerja mereka. Walau bagaimanapun, penting untuk memastikan bahawa watermark anda tidak terlalu mengganggu atau mengganggu, kerana ini dapat mengurangkan imej keseluruhan. Perisian penyuntingan video seperti Adobe Premiere Pro dan alat dalam talian seperti Kapwing membolehkan anda menambah tanda air ke video anda.

Apakah implikasi undang -undang menggunakan imej watermarked? Tanda air menunjukkan bahawa imej itu berhak cipta, dan menggunakannya tanpa persetujuan Pencipta boleh dianggap sebagai pelanggaran hak cipta. Selalu terbaik untuk mendapatkan kebenaran sebelum menggunakan imej watermark.

Atas ialah kandungan terperinci PHP Master | Tanda air imej dengan Imagick. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn