php 打包gd 库
Jun 13, 2016 pm 12:18 PM
height
image
name
width
php 封装gd 库
使用sae 版 thinkphp 在本地和sae 上无法实现缩略图,缩略图主要使用在瀑布流上面,不然一张图片2 3 M,速度太慢,就自己封装了一个,见笑!
<code class=" hljs xml"><span class="php"><span class="hljs-preprocessor"><?php</span><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Thumb</span>{</span> <span class="hljs-comment">// 设置最大宽度,用来在编辑器中使用和显示</span> <span class="hljs-keyword">private</span> <span class="hljs-variable">$max_width</span> = <span class="hljs-keyword">null</span>; <span class="hljs-keyword">private</span> <span class="hljs-variable">$file_name</span> = <span class="hljs-keyword">null</span>; <span class="hljs-keyword">private</span> <span class="hljs-variable">$water_name</span> = <span class="hljs-keyword">null</span>; <span class="hljs-comment">//获得文件名和图片宽度</span> <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">__construct</span><span class="hljs-params">(<span class="hljs-variable">$max_widht</span>,<span class="hljs-variable">$file_name</span>,<span class="hljs-variable">$water_name</span>)</span> {</span> <span class="hljs-variable">$this</span>->max_width = <span class="hljs-variable">$max_widht</span>; <span class="hljs-variable">$this</span>->file_name = <span class="hljs-variable">$file_name</span>; <span class="hljs-variable">$this</span>->water_name = <span class="hljs-variable">$water_name</span>; } <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">create_image</span><span class="hljs-params">()</span>{</span> <span class="hljs-comment">// 获得ori图片信息</span> <span class="hljs-keyword">list</span>(<span class="hljs-variable">$width</span>,<span class="hljs-variable">$height</span>,<span class="hljs-variable">$type</span>) = getimagesize(<span class="hljs-variable">$this</span>->file_name); <span class="hljs-comment">// 当原有图片大于 要求的最大宽度时,才需要进行压缩</span> <span class="hljs-keyword">if</span>(<span class="hljs-variable">$width</span> > <span class="hljs-variable">$this</span>->max_width){ <span class="hljs-comment">// 获得图片压缩百分比</span> <span class="hljs-variable">$per</span> = <span class="hljs-variable">$this</span>->max_width / <span class="hljs-variable">$width</span>; <span class="hljs-variable">$new_width</span> = <span class="hljs-variable">$width</span> * <span class="hljs-variable">$per</span>; <span class="hljs-variable">$new_height</span> = <span class="hljs-variable">$height</span> * <span class="hljs-variable">$per</span>; }<span class="hljs-keyword">else</span>{ <span class="hljs-variable">$new_height</span> = <span class="hljs-variable">$height</span>; <span class="hljs-variable">$new_width</span> = <span class="hljs-variable">$width</span>; } <span class="hljs-comment">//创建一个真彩色图像</span> <span class="hljs-variable">$image_p</span> = imagecreatetruecolor(<span class="hljs-variable">$new_width</span>, <span class="hljs-variable">$new_height</span> -<span class="hljs-number">10</span>); <span class="hljs-variable">$image</span> = <span class="hljs-variable">$this</span>->image_obj(<span class="hljs-variable">$type</span>, <span class="hljs-variable">$this</span>->file_name); imagecopyresampled(<span class="hljs-variable">$image_p</span>, <span class="hljs-variable">$image</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-variable">$new_width</span>, <span class="hljs-variable">$new_height</span>, <span class="hljs-variable">$width</span>, <span class="hljs-variable">$height</span>); <span class="hljs-variable">$this</span>->image_dump(<span class="hljs-variable">$type</span>, <span class="hljs-variable">$image_p</span>, <span class="hljs-variable">$this</span>->file_name); <span class="hljs-variable">$this</span>->water(); } <span class="hljs-comment">/* * 生成为图片添加水印 */</span> <span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">water</span><span class="hljs-params">()</span>{</span> <span class="hljs-variable">$water_name</span> = <span class="hljs-variable">$this</span>->water_name; <span class="hljs-variable">$dist_name</span> = <span class="hljs-variable">$this</span>->file_name; <span class="hljs-keyword">list</span>(<span class="hljs-variable">$dist_width</span>,<span class="hljs-variable">$dist_height</span>,<span class="hljs-variable">$type</span>) = getimagesize(<span class="hljs-variable">$dist_name</span>); <span class="hljs-variable">$dist_im</span> = <span class="hljs-variable">$this</span>->image_obj(<span class="hljs-variable">$type</span>, <span class="hljs-variable">$this</span>->file_name); <span class="hljs-variable">$water_name</span> = <span class="hljs-string">"D:/xampps/htdocs/buyingfeiblog/1/App/Modules/Admin/Tpl/Public/Images/water.png"</span>; <span class="hljs-keyword">list</span>(<span class="hljs-variable">$w_width</span>,<span class="hljs-variable">$w_height</span>) = getimagesize(<span class="hljs-variable">$water_name</span>); <span class="hljs-comment">// 获得图片水印信息</span> <span class="hljs-variable">$water_src</span> = imagecreatefrompng(<span class="hljs-variable">$water_name</span>); <span class="hljs-comment">// 设置图片水印位置 在右下角</span> <span class="hljs-variable">$x</span> = (<span class="hljs-variable">$dist_width</span> - <span class="hljs-variable">$w_width</span>) / <span class="hljs-number">4</span> * <span class="hljs-number">3</span> ; <span class="hljs-variable">$y</span> =(<span class="hljs-variable">$dist_height</span> - <span class="hljs-variable">$w_height</span>) /<span class="hljs-number">4</span> * <span class="hljs-number">3</span> ; <span class="hljs-keyword">if</span>(imagecopy(<span class="hljs-variable">$dist_im</span>, <span class="hljs-variable">$water_src</span>, <span class="hljs-variable">$x</span>, <span class="hljs-variable">$y</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-variable">$w_width</span>, <span class="hljs-variable">$w_height</span>)){ imagepng(<span class="hljs-variable">$dist_im</span>,<span class="hljs-variable">$dist_name</span>); <span class="hljs-keyword">echo</span> <span class="hljs-string">"success"</span>; }<span class="hljs-keyword">else</span>{ <span class="hljs-keyword">echo</span> <span class="hljs-string">"error"</span>; } } <span class="hljs-comment">// 生成图片类型,生成不同图片 保持图片原本类型不发生变化</span> <span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">image_dump</span><span class="hljs-params">(<span class="hljs-variable">$type</span>,<span class="hljs-variable">$image_p</span>,<span class="hljs-variable">$filename</span>)</span>{</span> <span class="hljs-keyword">switch</span> (<span class="hljs-variable">$type</span>){ <span class="hljs-keyword">case</span> <span class="hljs-number">1</span>: imagegif(<span class="hljs-variable">$image_p</span>, <span class="hljs-variable">$filename</span>); <span class="hljs-variable">$dis_im</span> = imagecreatefromgif(file_name); <span class="hljs-keyword">break</span>; <span class="hljs-keyword">case</span> <span class="hljs-number">2</span>: imagejpeg(<span class="hljs-variable">$image_p</span>, <span class="hljs-variable">$this</span>->file_name); <span class="hljs-variable">$dis_im</span> = imagecreatefromjpeg(file_name); <span class="hljs-keyword">break</span>; <span class="hljs-keyword">case</span> <span class="hljs-number">3</span>: imagepng(<span class="hljs-variable">$image_p</span>,file_name); <span class="hljs-variable">$dis_im</span> = imagecreatefrompng(file_name); <span class="hljs-keyword">break</span>; <span class="hljs-keyword">default</span> : } } <span class="hljs-comment">// 根据图片不同,生成不同资源对象</span> <span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">image_obj</span><span class="hljs-params">(<span class="hljs-variable">$type</span>,<span class="hljs-variable">$filename</span>)</span>{</span> <span class="hljs-keyword">switch</span> (<span class="hljs-variable">$type</span>){<span class="hljs-comment">// 1 = GIF,2 = JPG,3 = PNG,</span> <span class="hljs-keyword">case</span> <span class="hljs-number">1</span>: <span class="hljs-variable">$image</span> = imagecreatefromgif(<span class="hljs-variable">$filename</span>); <span class="hljs-keyword">break</span>; <span class="hljs-keyword">case</span> <span class="hljs-number">2</span>: <span class="hljs-variable">$image</span> = imagecreatefromjpeg(<span class="hljs-variable">$filename</span>); <span class="hljs-keyword">break</span>; <span class="hljs-keyword">case</span> <span class="hljs-number">3</span>: <span class="hljs-variable">$image</span> = imagecreatefrompng(<span class="hljs-variable">$filename</span>); <span class="hljs-keyword">break</span>; <span class="hljs-keyword">default</span> : } <span class="hljs-keyword">return</span> <span class="hljs-variable">$image</span>; }} <span class="hljs-variable">$thumb</span> = <span class="hljs-keyword">new</span> Thumb(<span class="hljs-number">725</span>,<span class="hljs-string">"D:/xampps/htdocs/test/test.jpg"</span>); <span class="hljs-variable">$thumb</span>->create_image();<span class="hljs-comment">//create_image</span><span class="hljs-preprocessor">?></span></span></code>
Salin selepas log masuk
就是这么简单,
主要包括生成真彩图,
创建图形对象资源
图片进行合并,ok!
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

Artikel Panas
Muzium Dua Point: Panduan Lokasi Bungle Gurun
4 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Berapa lama masa yang diperlukan untuk mengalahkan fiksyen berpecah?
3 minggu yang lalu
By DDD
Repo: Cara menghidupkan semula rakan sepasukan
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌

Alat panas Tag

Artikel Panas
Muzium Dua Point: Panduan Lokasi Bungle Gurun
4 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Berapa lama masa yang diperlukan untuk mengalahkan fiksyen berpecah?
3 minggu yang lalu
By DDD
Repo: Cara menghidupkan semula rakan sepasukan
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan Bing Image Creator secara percuma

Bagaimana untuk memadam imej dari telefon Xiaomi

Pemasangan Imagemagic Centos dan Tutorial pemasangan Imej

Penjelasan terperinci tentang sifat dimensi CSS: tinggi dan lebar

Apakah kaedah untuk menyatakan nilai lebar dalam css?

Bagaimana untuk menambah nama pada persediaan dalam Vue3
