php penskalaan imej dan teknologi pemangkasan
Dalam bab lepas, kami mempelajari teknologi penanda air bagi imej Teknologi penanda air pada asasnya adalah sama dengan teknologi penskalaan dan pemangkasan yang akan kami pelajari dalam bab ini, kecuali fungsi yang digunakan telah berubah sedikit.
Dua fungsi yang biasa digunakan adalah seperti berikut:
函数名 | 函数说明 |
---|---|
imagecopyresampled | 重采样拷贝部分图像并调整大小 |
imagecopyresized | 拷贝部分图像并调整大小 |
Jom kita lihat kedua-dua fungsi ini tidak sukar untuk digunakan. Cuma parameternya agak rumit. Dan untuk melengkapkan penskalaan atau pemotongan imej:
bool imagecopyresampled ( sumber $ imej sasaran, sumber $ imej sumber, int $ x kedudukan di mana sasaran bermula, int $ y kedudukan di mana sasaran bermula , int $ sumber Memulakan kedudukan x, int $ sumber mula y kedudukan, int $ lebar imej sasaran, int $ tinggi imej sasaran, int $ lebar imej sumber, int $ tinggi imej sumber)
Sila ambil perhatian bahawa parameter imej atas dan bawah adalah sama.
bool imagecopyresized ( sumber $sasaran imej, sumber $sumber imej, int $sasaran mula x kedudukan, int $sasaran mula y kedudukan, int $sumber mula x kedudukan, int $sumber mula y kedudukan, int $lebar imej sasaran, int $tinggi imej sasaran, int $lebar imej sumber, int $tinggi imej sumber)
Kaedah penskalaan dan pemangkasan imej adalah sama Ya, perbezaannya ialah sama ada keseluruhan gambar atau sebahagian gambar disalin semasa menyalin.
Arahan operasi:
Bermula dari titik permulaan (x, y) imej sumber, nyatakan lebar dan tinggi imej. Letakkannya ke titik permulaan (x, y) imej sasaran dan nyatakan lebar dan ketinggian imej.
1. Zum imej, kami akan langkah demi langkah
1. Buka imej sumber
2. Tetapkan peratusan penskalaan imej (zum)
3 Dapatkan imej sumber dan laraskan saiz mengikut nisbah
4 imej sasaran
5 .Letakkan saiz larasan imej sumber ke dalam sasaran
6. Musnahkan sumber
Kami akan skala Fan Bingbing:
<?php //打开来源图片 $image = imagecreatefrompng('fbb.png'); //定义百分比,缩放到0.1大小 $percent = 0.1; // 将图片宽高获取到 list($width, $height) = getimagesize('fbb.png'); //设置新的缩放的宽高 $new_width = $width * $percent; $new_height = $height * $percent; //创建新图片 $new_image = imagecreatetruecolor($new_width, $new_height); //将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中 imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header('content-type:image/jpeg'); imagejpeg($new_image); ?>
2 > 1. Buka imej sumber dan imej sasaran
2. Minta titik dalam imej sumber dan tetapkan lebar dan tinggi. ke dalam imej sasaran. (Pangkas)
3. Simpan input imej
4. Musnahkan sumber
Kami akan memotong perkataan "darjah" dalam gambar di bawah dan meletakkannya pada muka husky:
Logo Baidu:
Gambar Husky:
Mari kita susun idea:
Koordinat permulaan darjah ialah: 407, 154
Perkataan darjah bermula daripada x, Lebar permulaan dan ketinggian koordinat y ialah: 80, 89
Koordinat x, y muka husky dalam gambar ialah: 281, 71
Koordinat x, y muka husky dalam gambar Lebar dan tinggi ialah: 132, 160
Kita semua tahu koordinat dan lebar dan tinggi Kita mula mengikuti penggunaan fungsi dan menggunakan kod untuk mengendalikan imej:
<?php $dst = imagecreatefrompng('hsq.png'); $src = imagecreatefrompng('du.png'); imagecopyresized($dst, $src, 281, 71, 407, 154, 132, 160, 80, 90); header('content-type:image/jpeg'); imagejpeg($dst); imagedestroy($dst); imagedestroy($src); ?><. 🎜> Mari kita lihat kesan percubaan: