Heim  >  Artikel  >  Backend-Entwicklung  >  用GD库生成高质量的缩略图片_PHP

用GD库生成高质量的缩略图片_PHP

WBOY
WBOYOriginal
2016-06-01 12:34:49883Durchsuche
PHP代码:
<font color="#000000"><br><br><br><font color="#0000bb"><br><br><br><br>$FILENAME</font><font color="#007700">=</font><font color="#dd0000">"image_name"</font><font color="#007700">;<br><br><br><br></font><font color="#ff8000">// 生成图片的宽度<br><br></font><font color="#0000bb">$RESIZEWIDTH</font><font color="#007700">=</font><font color="#0000bb">400</font><font color="#007700">;<br><br><br><br></font><font color="#ff8000">// 生成图片的高度<br><br></font><font color="#0000bb">$RESIZEHEIGHT</font><font color="#007700">=</font><font color="#0000bb">400</font><font color="#007700">;<br><br><br><br><br><br>function </font><font color="#0000bb">ResizeImage</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">,</font><font color="#0000bb">$maxwidth</font><font color="#007700">,</font><font color="#0000bb">$maxheight</font><font color="#007700">,</font><font color="#0000bb">$name</font><font color="#007700">){<br><br>    </font><font color="#0000bb">$width </font><font color="#007700">= </font><font color="#0000bb">imagesx</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">);<br><br>    </font><font color="#0000bb">$height </font><font color="#007700">= </font><font color="#0000bb">imagesy</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">);<br><br>    if((</font><font color="#0000bb">$maxwidth </font><font color="#007700">&& </font><font color="#0000bb">$width </font><font color="#007700">> </font><font color="#0000bb">$maxwidth</font><font color="#007700">) || (</font><font color="#0000bb">$maxheight </font><font color="#007700">&& </font><font color="#0000bb">$height </font><font color="#007700">> </font><font color="#0000bb">$maxheight</font><font color="#007700">)){<br><br>        if(</font><font color="#0000bb">$maxwidth </font><font color="#007700">&& </font><font color="#0000bb">$width </font><font color="#007700">> </font><font color="#0000bb">$maxwidth</font><font color="#007700">){<br><br>            </font><font color="#0000bb">$widthratio </font><font color="#007700">= </font><font color="#0000bb">$maxwidth</font><font color="#007700">/</font><font color="#0000bb">$width</font><font color="#007700">;<br><br>            </font><font color="#0000bb">$RESIZEWIDTH</font><font color="#007700">=</font><font color="#0000bb">true</font><font color="#007700">;<br><br>        }<br><br>        if(</font><font color="#0000bb">$maxheight </font><font color="#007700">&& </font><font color="#0000bb">$height </font><font color="#007700">> </font><font color="#0000bb">$maxheight</font><font color="#007700">){<br><br>            </font><font color="#0000bb">$heightratio </font><font color="#007700">= </font><font color="#0000bb">$maxheight</font><font color="#007700">/</font><font color="#0000bb">$height</font><font color="#007700">;<br><br>            </font><font color="#0000bb">$RESIZEHEIGHT</font><font color="#007700">=</font><font color="#0000bb">true</font><font color="#007700">;<br><br>        }<br><br>        if(</font><font color="#0000bb">$RESIZEWIDTH </font><font color="#007700">&& </font><font color="#0000bb">$RESIZEHEIGHT</font><font color="#007700">){<br><br>            if(</font><font color="#0000bb">$widthratio </font><font color="#007700"><font color="#0000bb">$heightratio</font><font color="#007700">){<br><br>                </font><font color="#0000bb">$ratio </font><font color="#007700">= </font><font color="#0000bb">$widthratio</font><font color="#007700">;<br><br>            }else{<br><br>                </font><font color="#0000bb">$ratio </font><font color="#007700">= </font><font color="#0000bb">$heightratio</font><font color="#007700">;<br><br>            }<br><br>        }elseif(</font><font color="#0000bb">$RESIZEWIDTH</font><font color="#007700">){<br><br>            </font><font color="#0000bb">$ratio </font><font color="#007700">= </font><font color="#0000bb">$widthratio</font><font color="#007700">;<br><br>        }elseif(</font><font color="#0000bb">$RESIZEHEIGHT</font><font color="#007700">){<br><br>            </font><font color="#0000bb">$ratio </font><font color="#007700">= </font><font color="#0000bb">$heightratio</font><font color="#007700">;<br><br>        }<br><br>        </font><font color="#0000bb">$newwidth </font><font color="#007700">= </font><font color="#0000bb">$width </font><font color="#007700">* </font><font color="#0000bb">$ratio</font><font color="#007700">;<br><br>        </font><font color="#0000bb">$newheight </font><font color="#007700">= </font><font color="#0000bb">$height </font><font color="#007700">* </font><font color="#0000bb">$ratio</font><font color="#007700">;<br><br>        if(</font><font color="#0000bb">function_exists</font><font color="#007700">(</font><font color="#dd0000">"imagecopyresampled"</font><font color="#007700">)){<br><br>              </font><font color="#0000bb">$newim </font><font color="#007700">= </font><font color="#0000bb">imagecreatetruecolor</font><font color="#007700">(</font><font color="#0000bb">$newwidth</font><font color="#007700">, </font><font color="#0000bb">$newheight</font><font color="#007700">);<br><br>              </font><font color="#0000bb">imagecopyresampled</font><font color="#007700">(</font><font color="#0000bb">$newim</font><font color="#007700">, </font><font color="#0000bb">$im</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">$newwidth</font><font color="#007700">, </font><font color="#0000bb">$newheight</font><font color="#007700">, </font><font color="#0000bb">$width</font><font color="#007700">, </font><font color="#0000bb">$height</font><font color="#007700">);<br><br>        }else{<br><br>            </font><font color="#0000bb">$newim </font><font color="#007700">= </font><font color="#0000bb">imagecreate</font><font color="#007700">(</font><font color="#0000bb">$newwidth</font><font color="#007700">, </font><font color="#0000bb">$newheight</font><font color="#007700">);<br><br>              </font><font color="#0000bb">imagecopyresized</font><font color="#007700">(</font><font color="#0000bb">$newim</font><font color="#007700">, </font><font color="#0000bb">$im</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">$newwidth</font><font color="#007700">, </font><font color="#0000bb">$newheight</font><font color="#007700">, </font><font color="#0000bb">$width</font><font color="#007700">, </font><font color="#0000bb">$height</font><font color="#007700">);<br><br>        }<br><br>        </font><font color="#0000bb">ImageJpeg </font><font color="#007700">(</font><font color="#0000bb">$newim</font><font color="#007700">,</font><font color="#0000bb">$name </font><font color="#007700">. </font><font color="#dd0000">".jpg"</font><font color="#007700">);<br><br>        </font><font color="#0000bb">ImageDestroy </font><font color="#007700">(</font><font color="#0000bb">$newim</font><font color="#007700">);<br><br>    }else{<br><br>        </font><font color="#0000bb">ImageJpeg </font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">,</font><font color="#0000bb">$name </font><font color="#007700">. </font><font color="#dd0000">".jpg"</font><font color="#007700">);<br><br>    }<br><br>}<br><br><br><br><br><br><br><br>if(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'size'</font><font color="#007700">]){<br><br>    if(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'type'</font><font color="#007700">] == </font><font color="#dd0000">"image/pjpeg"</font><font color="#007700">){<br><br>        </font><font color="#0000bb">$im </font><font color="#007700">= </font><font color="#0000bb">imagecreatefromjpeg</font><font color="#007700">(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'tmp_name'</font><font color="#007700">]);<br><br>    }elseif(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'type'</font><font color="#007700">] == </font><font color="#dd0000">"image/x-png"</font><font color="#007700">){<br><br>        </font><font color="#0000bb">$im </font><font color="#007700">= </font><font color="#0000bb">imagecreatefrompng</font><font color="#007700">(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'tmp_name'</font><font color="#007700">]);<br><br>    }elseif(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'type'</font><font color="#007700">] == </font><font color="#dd0000">"image/gif"</font><font color="#007700">){<br><br>        </font><font color="#0000bb">$im </font><font color="#007700">= </font><font color="#0000bb">imagecreatefromgif</font><font color="#007700">(</font><font color="#0000bb">$_FILES</font><font color="#007700">[</font><font color="#dd0000">'image'</font><font color="#007700">][</font><font color="#dd0000">'tmp_name'</font><font color="#007700">]);<br><br>    }<br><br>    if(</font><font color="#0000bb">$im</font><font color="#007700">){<br><br>        if(</font><font color="#0000bb">file_exists</font><font color="#007700">(</font><font color="#dd0000">"$FILENAME.jpg"</font><font color="#007700">)){<br><br>            </font><font color="#0000bb">unlink</font><font color="#007700">(</font><font color="#dd0000">"$FILENAME.jpg"</font><font color="#007700">);<br><br>        }<br><br>        </font><font color="#0000bb">ResizeImage</font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">,</font><font color="#0000bb">$RESIZEWIDTH</font><font color="#007700">,</font><font color="#0000bb">$RESIZEHEIGHT</font><font color="#007700">,</font><font color="#0000bb">$FILENAME</font><font color="#007700">);<br><br>        </font><font color="#0000bb">ImageDestroy </font><font color="#007700">(</font><font color="#0000bb">$im</font><font color="#007700">);<br><br>    }<br><br>}<br><br><br><br></font><font color="#0000bb">?><br><br></font><br><br><img src="<font%20color=" alt="用GD库生成高质量的缩略图片_PHP" > </font><font color="#007700">echo(</font><font color="#0000bb">$FILENAME</font><font color="#007700">.</font><font color="#dd0000">".jpg?reload="</font><font color="#007700">.</font><font color="#0000bb">rand</font><font color="#007700">(</font><font color="#0000bb">0</font><font color="#007700">,</font><font color="#0000bb">999999</font><font color="#007700">)); </font><font color="#0000bb">?></font>"><br><br><br><br><br><br><form enctype="multipart/form-data" method="post"> <br><br><br><br><br><input type="file" name="image" size="50" value="浏览"><p><br><br><input type="submit" value="上传图片"><br><br></p> </form> <br><br><br><br></font>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn