Heim  >  Artikel  >  Backend-Entwicklung  >  (Fortgeschrittene) PHP-Bildverarbeitungsfunktionen und Codebeispiele

(Fortgeschrittene) PHP-Bildverarbeitungsfunktionen und Codebeispiele

黄舟
黄舟Original
2017-02-06 10:14:081125Durchsuche

1. Bildressourcen erstellen

imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像 imagegif(图片资源,保存路径);
imagepng()
imagejpeg();

2. Bildattribute abrufen
imagesx(res//width
imagesy(res//height
getimagesize(file path )
Gibt ein Array mit vier Zellen zurück. Index 0 enthält den Pixelwert der Bildbreite, Index 1 enthält den Pixelwert der Bildhöhe: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF. 5 = PSD, 6 = BMP, 7 = TIFF (Intel-Byte-Reihenfolge), 8 = TIFF (Motorola-Byte-Reihenfolge), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. Diese Tags entsprechen der neuen IMAGETYPE-Konstante, die in PHP 4.3.0 hinzugefügt wurde. Der Inhalt ist „height="yyy" width="xxx"", der direkt verwendet werden kann für IMG-Tags.
Bildressourcen zerstören
imagedestroy (Bildressourcen);

3. Transparenzverarbeitung
PNG- und JPEG-Transparentfarben sind normal, nur GIF ist abnormal

imagecolortransparent(resource image [,int color])//将某个颜色设置成透明色
imagecolorstotal()
imagecolorforindex();

4. Zuschneiden von Bildern

imagecopyresized()
imagecopyresampled();

5. Hinzufügen von Wasserzeichen (Text, Bild)
String-Kodierungskonvertierungszeichenfolge iconv ( string $in_charset , string $str )

6. Bilddrehung
imagerotate(); // Bildspiegelung im angegebenen Winkel

7. Bildspiegelung
entlang der X-Achse und entlang der Y-Achse

8. Schärfen

imagecolorsforindex()
imagecolorat()

Grafiken auf das Bild zeichnen $img=imagecreatefromgif("./images/map.gif");

. Der Code lautet wie folgt:

<?PHP
 /**
 * 图片锐化处理
 */
 $red= imagecolorallocate($img, 255, 0, 0);
 imageline($img, 0, 0, 100, 100, $red);
 imageellipse($img, 200, 100, 100, 100, $red);
 imagegif($img, "./images/map2.gif");
 imagedestroy($img);


Normale Skalierung von Bildern
Der Code lautet wie folgt:

$filename="./images/hee.jpg";
 $per=0.3;
 list($width, $height)=getimagesize($filename);
 $n_w=$width*$per;
 $n_h=$width*$per;
 $new=imagecreatetruecolor($n_w, $n_h);
 $img=imagecreatefromjpeg($filename);
 //拷贝部分图像并调整
 imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
 //图像输出新图片、另存为
 imagejpeg($new, "./images/hee2.jpg");
 imagedestroy($new);
 imagedestroy($img);

Bilder werden gleich skaliert Proportionen und transparente Farben werden nicht verarbeitet
Der Code lautet wie folgt:

function thumn($background, $width, $height, $newfile) {
 list($s_w, $s_h)=getimagesize($background);//获取原图片高度、宽度
 if ($width && ($s_w < $s_h)) {
 $width = ($height / $s_h) * $s_w;
 } else {
 $height = ($width / $s_w) * $s_h;
 }
 $new=imagecreatetruecolor($width, $height);
 $img=imagecreatefromjpeg($background);
 imagecopyresampled($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
 imagejpeg($new, $newfile);
 imagedestroy($new);
 imagedestroy($img);
 }
 thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg");

gif transparente Farbverarbeitung
Der Code lautet wie folgt:

function thumn($background, $width, $height, $newfile) {
 list($s_w, $s_h)=getimagesize($background);
 if ($width && ($s_w < $s_h)) {
 $width = ($height / $s_h) * $s_w;
 } else {
 $height = ($width / $s_w) * $s_h;
 }
 $new=imagecreatetruecolor($width, $height);
 $img=imagecreatefromgif($background);
 $otsc=imagecolortransparent($img);
 if($otsc >=0 && $otst < imagecolorstotal($img)){//判断索引色
 $tran=imagecolorsforindex($img, $otsc);//索引颜色值
 $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);
 imagefill($new, 0, 0, $newt);
 imagecolortransparent($new, $newt);
 }
 imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
 imagegif($new, $newfile);
 imagedestroy($new);
 imagedestroy($img);
 }
 thumn("images/map.gif", 200, 200, "./images/map3.gif");


Bild zuschneiden

Der Code lautet wie folgt:

<?php
/**
* 图片裁剪处理
* edit by www.jbxue.com
*/
function cut($background, $cut_x, $cut_y, $cut_width, $cut_height, $location){
$back=imagecreatefromjpeg($background);
$new=imagecreatetruecolor($cut_width, $cut_height);
imagecopyresampled($new, $back, 0, 0, $cut_x, $cut_y, $cut_width, $cut_height,$cut_width,$cut_height);
imagejpeg($new, $location);
imagedestroy($new);
imagedestroy($back);
}
cut("./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg");
?>


Bild-Wasserzeichen-Text-Wasserzeichen

. Der Code lautet wie folgt:

<?PHP /** 
*  
* 图片添加文字水印 
*/ 
function mark_text($background, $text, $x, $y){ 
$back=imagecreatefromjpeg($background); 
$color=imagecolorallocate($back, 0, 255, 0); 
imagettftext($back, 20, 0, $x, $y, $color, "simkai.ttf", $text); 
imagejpeg($back, "./images/hee7.jpg"); 
imagedestroy($back); 
} 
mark_text("./images/hee.jpg", "细说PHP", 150, 250); 
//图片水印 
function mark_pic($background, $waterpic, $x, $y){ 
$back=imagecreatefromjpeg($background); 
$water=imagecreatefromgif($waterpic); 
$w_w=imagesx($water); 
$w_h=imagesy($water); 
imagecopy($back, $water, $x, $y, 0, 0, $w_w, $w_h); 
imagejpeg($back,"./images/hee8.jpg"); 
imagedestroy($back); 
imagedestroy($water); 
} 
mark_pic("./images/hee.jpg", "./images/gaolf.gif", 50, 200);
?>


Bilddrehung

Der Code lautet wie folgt:

<?PHP
 /**
 * 图片旋转
 */
 $back=imagecreatefromjpeg("./images/hee.jpg");
 $new=imagerotate($back, 45, 0);
 imagejpeg($new, "./images/hee9.jpg");
 ?>


Bild horizontal spiegeln, vertikal spiegeln

Der Code lautet wie folgt:

<?php
 /**
 * 图片水平翻转 垂直翻转
 */
 function turn_y($background, $newfile){
 $back=imagecreatefromjpeg($background);
 $width=imagesx($back);
 $height=imagesy($back);
 $new=imagecreatetruecolor($width, $height);
 for($x=0; $x < $width; $x++){
 imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $height);
 }
 imagejpeg($new, $newfile);
 imagedestroy($back);
 imagedestroy($new);
 }
 function turn_x($background, $newfile){
 $back=imagecreatefromjpeg($background);
 $width=imagesx($back);
 $height=imagesy($back);
 $new=imagecreatetruecolor($width, $height);
 for($y=0; $y < $height; $y++){
 imagecopy($new, $back,0, $height-$y-1, 0, $y, $width, 1);
 }
 imagejpeg($new, $newfile);
 imagedestroy($back);
 imagedestroy($new);
 }
 turn_y("./images/hee.jpg", "./images/hee11.jpg");
 turn_x("./images/hee.jpg", "./images/hee12.jpg");
 ?>

Das Obige ist der Inhalt der (erweiterten) PHP-Bildverarbeitungsfunktionen und Codebeispiele . Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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