Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP PNG verzerrt ist?

Was tun, wenn PHP PNG verzerrt ist?

藏色散人
藏色散人Original
2021-10-20 09:45:201846Durchsuche

Lösung zur PHP-PNG-Verzerrung: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Erstellen Sie eine echte Farbleinwand mit der gleichen Größe wie das Hintergrundbild. 4. Synthetisieren Sie PNG-Bilder.

Was tun, wenn PHP PNG verzerrt ist?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

php-PNG-Verzerrung Was ist zu tun?

php-synthetisierte PNG-Bildverzerrung und Textzentrierungslösung

Der Code lautet wie folgt:

<?php
    ob_clean();
    $bg = "image1.png";
    $image_1 = imagecreatefrompng($bg);
    $bgx = imagesx($image_1);
    $bgy = imagesy($image_1);
    //创建一个和背景图片一样大小的真彩色画布(ps:只有这样才能保证后面copy图片的时候不会失真)
    $bgimage = imageCreatetruecolor($bgx,$bgy);
    imagesavealpha($bgimage, true);//保持透明
    imagealphablending($bgimage, true);//混色模式
    $alpha = imagecolorallocatealpha($bgimage, 0, 0, 0, 127);//透明
    imagefill($bgimage, 0, 0, $alpha);
    //copy背景图片
    imagecopyresampled($bgimage,$image_1,0,0,0,0,$bgx,$bgy,$bgx,$bgy);
    $fontColor = imagecolorallocate($bgimage,0x33,0x33,0x33);
    $image_2 = imagecreatefrompng( "image2.png");
    //合成图片2
    imagecopyresampled($bgimage, $image_2, 100, 100, 0, 0, 40, 40, imagesx($image_2) , imagesy($image_2));
    //文字
    $textLen = mb_strlen($text1);
    $fontSize  = 20;
    $fontWidth = imagefontwidth($fontSize)*3;//不知为什么,实测如此
    $textWidth = $fontWidth * mb_strlen($text1);
    $textx = ceil ( ($bgx - $textWidth) / 2 );
    imageTTFText($bgimage, $fontSize, 0, $textx, 450, $fontColor, $font , $text1);
    $result = imagepng($bgimage,"newimage.png");
    imagedestroy($bgimage);
    imagedestroy($qrcode);

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP PNG verzerrt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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