Rumah pembangunan bahagian belakang tutorial php php图片水印添加,压缩,剪切的封装类

php图片水印添加,压缩,剪切的封装类

Jun 23, 2016 pm 01:28 PM

  php对图片文件的操作主要是利用GD库扩展。当我们频繁利用php对图片进行操作时,会自然封装很多函数,否则会写太多重复的代码。当有很多对图片的相关函数的时候,我们可以考虑将这些函数也整理一下,因而就有了封装成类的想法。

  操作图片主要历经四个步骤:

  1. 打开图片
  2. 操作图片
  3. 输出图片
  4. 销毁图片

  1,3,4三个步骤每次都要写,每次又都差不多。真正需要变通的只有操作图片的这一步骤了。操作图片又往往通过1或多个主要的GD函数来完成。

  本文封装类里面的四种方法,文字水印(imagettftext()),图片水印(imagecopymerge()),图片压缩,图片剪切(imagecopyresampled()),其余的常用GD函数便不赘述。直接上代码:

<?php class Image{        private $info;    private $image;    public $type;    public function __construct($src)    {        $this->info=getimagesize($src);        $this->type=image_type_to_extension($this->info['2'],false);        $fun="imagecreatefrom{$this->type}";        $this->image=$fun($src);    }    /**     * 文字水印     * @param  [type]  $font     字体     * @param  [type]  $content  内容     * @param  [type]  $size     文字大小     * @param  [type]  $col      文字颜色(四元数组)     * @param  array   $location 位置      * @param  integer $angle    倾斜角度     * @return [type]                */    public function fontMark($font,$content,$size,$col,$location,$angle=0){        $col=imagecolorallocatealpha($this->image, $col['0'], $col['1'], $col['2'],$col['3']);        imagettftext($this->image, $size, $angle, $location['0'], $location['1'], $col,$font,$content);    }        /**     * 图片水印     * @param  [type] $imageMark 水印图片地址     * @param  [type] $dst       水印图片在原图片中的位置     * @param  [type] $pct       透明度     * @return [type]                 */    public function imageMark($imageMark,$dst,$pct){        $info2=getimagesize($imageMark);        $type=image_type_to_extension($info2['2'],false);        $func2="imagecreatefrom".$type;        $water=$func2($imageMark);        imagecopymerge($this->image, $water, $dst[0], $dst[1], 0, 0, $info2['0'], $info2['1'], $pct);        imagedestroy($water);    }    /**     * 压缩图片     * @param  [type] $thumbSize 压缩图片大小     * @return [type]            [description]     */    public function thumb($thumbSize){        $imageThumb=imagecreatetruecolor($thumbSize[0], $thumbSize[1]);                imagecopyresampled($imageThumb, $this->image, 0, 0, 0, 0, $thumbSize[0], $thumbSize[1], $this->info['0'], $this->info['1']);        imagedestroy($this->image);        $this->image=$imageThumb;    }    /**    * 裁剪图片     * @param  [type] $cutSize  裁剪大小     * @param  [type] $location 裁剪位置     * @return [type]           [description]     */     public function cut($cutSize,$location){         $imageCut=imagecreatetruecolor($cutSize[0],$cutSize[1]);         imagecopyresampled($imageCut, $this->image, 0, 0, $location[0], $location[1],$cutSize[0],$cutSize[1],$cutSize[0],$cutSize[1]);         imagedestroy($this->image);         $this->image=$imageCut;     }    /**     * 展现图片     * @return [type] [description]     */    public function show(){        header("content-type:".$this->info['mime']);        $funn="image".$this->type;        $funn($this->image);    }    /**     * 保存图片 * @param  [type] $newname 新图片名 * @return [type]          [description] */     public function save($newname){         header("content-type:".$this->info['mime']);         $funn="image".$this->type;         $funn($this->image,$newname.'.'.$this->type);     }     public function __destruct(){         imagedestroy($this->image);     } } ?>
Salin selepas log masuk

  如果还需要其他操作,只需要再往这个类里面添加就好啦~~

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendayakan atau melumpuhkan pemampatan memori pada Windows 11 Bagaimana untuk mendayakan atau melumpuhkan pemampatan memori pada Windows 11 Sep 19, 2023 pm 11:33 PM

Dengan pemampatan memori pada Windows 11, peranti anda akan tercekik walaupun dengan jumlah RAM yang terhad. Dalam artikel ini, kami akan menunjukkan kepada anda cara mendayakan atau melumpuhkan pemampatan memori pada Windows 11. Apakah pemampatan memori? Pemampatan memori ialah ciri yang memampatkan data sebelum menulisnya ke RAM, sekali gus menyediakan lebih banyak ruang storan padanya. Sudah tentu, lebih banyak data yang disimpan dalam memori fizikal diterjemahkan kepada operasi sistem yang lebih pantas dan prestasi keseluruhan yang lebih baik. Ciri ini didayakan secara lalai dalam Windows 11, tetapi jika ia tidak aktif entah bagaimana, anda boleh melumpuhkan atau mendayakannya semula. Bagaimana untuk membolehkan pemampatan memori dalam Windows 11? Klik bar carian, taip powershell dan klik

Tetapan kadar mampatan maksimum 7-zip, bagaimana untuk memampatkan 7zip kepada minimum Tetapan kadar mampatan maksimum 7-zip, bagaimana untuk memampatkan 7zip kepada minimum Jun 18, 2024 pm 06:12 PM

Saya mendapati bahawa pakej termampat yang dimuat turun dari laman web muat turun tertentu akan lebih besar daripada pakej termampat asal selepas penyahmampatan Perbezaannya ialah berpuluh-puluh Kb dan berpuluh-puluh Mb jika fail kecil, jika terdapat banyak fail, kos penyimpanan akan meningkat dengan banyak. Saya telah membuat beberapa kajian mengenainya dan boleh belajar daripadanya jika perlu. Tahap mampatan: 9-mampatan melampau Saiz kamus: 256 atau 384, semakin dimampatkan kamus, semakin perlahan perbezaan kadar mampatan lebih besar sebelum 256MB dan tiada perbezaan dalam kadar mampatan selepas 384MB: maksimum 273 Parameter: f=BCJ2, uji dan tambah kadar mampatan parameter akan lebih tinggi

Apakah yang perlu saya lakukan jika jenis pemampatan fail pr tidak disokong? Apakah yang perlu saya lakukan jika jenis pemampatan fail pr tidak disokong? Mar 23, 2023 pm 03:12 PM

Sebab dan penyelesaian untuk jenis pemampatan fail PR yang tidak disokong: 1. Versi PR yang diperkemas telah menyelaraskan banyak pengekod video dan menggunakan versi penuh Premiere 2. Disebabkan oleh pengekodan video yang tidak teratur, anda boleh menggunakan kilang format untuk Menukar video ke format WMV.

Cara menggunakan Nginx untuk pemampatan dan penyahmampatan permintaan HTTP Cara menggunakan Nginx untuk pemampatan dan penyahmampatan permintaan HTTP Aug 02, 2023 am 10:09 AM

Cara menggunakan Nginx untuk memampatkan dan menyahmampat permintaan HTTP Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang berkuasa dan fleksibel. Apabila memproses permintaan HTTP, anda boleh menggunakan modul gzip dan gunzip yang disediakan oleh Nginx untuk memampatkan dan menyahmampat permintaan untuk mengurangkan jumlah penghantaran data dan meningkatkan kelajuan tindak balas permintaan. Artikel ini akan memperkenalkan langkah khusus tentang cara menggunakan Nginx untuk memampatkan dan menyahmampat permintaan HTTP, dan memberikan contoh kod yang sepadan. Konfigurasikan modul gzip

Bagaimana untuk memaparkan maklumat fail termampat dalam linux Bagaimana untuk memaparkan maklumat fail termampat dalam linux Feb 13, 2023 am 10:20 AM

Kaedah paparan: 1. Gunakan editor Vim, sintaks "fail kompres vim"; 5. Gunakan arahan "zip -sf compress file"; Gunakan "zless "Fail Mampat"; 10. Gunakan lebih sedikit.

Kaedah Golang untuk mencapai pemampatan kualiti imej Kaedah Golang untuk mencapai pemampatan kualiti imej Aug 17, 2023 pm 10:28 PM

Kaedah Golang untuk mencapai pemampatan kualiti imej Dengan perkembangan pesat Internet, imej telah menjadi salah satu media penting untuk orang ramai berkomunikasi dan menghantar maklumat dalam talian. Walau bagaimanapun, imej resolusi tinggi bukan sahaja mengambil banyak ruang storan, tetapi juga meningkatkan masa pemuatan semasa penghantaran rangkaian, yang mempunyai kesan tertentu pada pengalaman pengguna. Oleh itu, dalam aplikasi praktikal, pemampatan imej adalah tugas yang sangat bermakna. Artikel ini akan memperkenalkan cara menggunakan Golang untuk memampatkan kualiti imej. Pertama, kita perlu mengimport Gola

Petua untuk mengurangkan saiz fail rakaman skrin win10 Petua untuk mengurangkan saiz fail rakaman skrin win10 Jan 04, 2024 pm 12:05 PM

Ramai rakan perlu merakam skrin untuk kerja pejabat atau memindahkan fail, tetapi kadangkala masalah fail yang terlalu besar menyebabkan banyak masalah berikut adalah penyelesaian kepada masalah fail yang terlalu besar, mari kita lihat. Apa yang perlu dilakukan jika fail rakaman skrin win10 terlalu besar: 1. Muat turun perisian Format Factory untuk memampatkan fail. Alamat muat turun >> 2. Masukkan halaman utama dan klik pilihan "Video-MP4". 3. Klik "Tambah Fail" pada halaman format penukaran dan pilih fail MP4 untuk dimampatkan. 4. Klik "Konfigurasi Output" pada halaman untuk memampatkan fail mengikut kualiti output. 5. Pilih "Kualiti dan Saiz Rendah" daripada senarai konfigurasi juntai bawah dan klik "OK". 6. Klik "OK" untuk melengkapkan import fail video. 7. Klik "Mula" untuk memulakan penukaran. 8. Selepas selesai, anda boleh

Log pelayan Linux terlalu besar, bagaimana untuk menyelesaikannya? Log pelayan Linux terlalu besar, bagaimana untuk menyelesaikannya? Jun 29, 2023 pm 11:09 PM

Masalah biasa fail log terlalu besar pada pelayan Linux dan penyelesaiannya Dengan perkembangan pesat Internet dan penggunaan pelayan yang meluas, ia telah menjadi masalah biasa bahawa fail log pelayan semakin besar. Sebilangan besar data log bukan sahaja mengambil ruang cakera, tetapi juga boleh menjejaskan prestasi dan kestabilan operasi pelayan. Artikel ini akan membincangkan masalah biasa fail log terlalu besar pada pelayan Linux dan menyediakan beberapa penyelesaian. 1. Fail log biasa pada pelayan Linux Fail log biasa termasuk log sistem, log aplikasi, Kami

See all articles