Heim > Backend-Entwicklung > PHP-Problem > So stellen Sie das Bild in PHP auf ein kreisförmiges Bild ein

So stellen Sie das Bild in PHP auf ein kreisförmiges Bild ein

藏色散人
Freigeben: 2023-03-13 17:48:01
Original
3007 Leute haben es durchsucht

So stellen Sie das Bild in PHP auf ein kreisförmiges Bild ein: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Erstellen Sie ein transparentes Bild. 2. Verarbeiten Sie das Bild mit der Methode „function yuan_img($imgpath) {...}“. Mach es einfach rund.

So stellen Sie das Bild in PHP auf ein kreisförmiges Bild ein

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

Wie stelle ich das Bild in PHP auf ein kreisförmiges Bild ein?

PHP-Bildzirkularisierungsverarbeitung:

Die verwendeten PHP-GD-Bibliotheksfunktionen sind

imagecolorat
imagesetpixel
Nach dem Login kopieren

Verarbeiten Sie das Bild zunächst in einen Kreis:

Das Originalbild sieht wie folgt aus:


Verarbeiten Wirkung nach dem Passieren:

Verwenden Sie die folgende Formel, um zu berechnen

(x-a)*(x-a)+(y-b)*(y-b)<r2
Nach dem Login kopieren

Die Festlegung der Formel bedeutet, dass der aktuelle x-, y-Punkt innerhalb des Kreises liegt

x, y sind die aktuellen Koordinaten

a, b sind Die Mittelpositionen des Kreises

r ist der Radius

Erstellen Sie zunächst ein transparentes Bild,

scannen Sie dann das Originalbild Zeile für Zeile, als ob sich die Pixel innerhalb des Kreises befinden würden, und zeichnen Sie die Pixel, die nicht vorhanden sind. Behalten Sie einfach die Transparenz bei Farbe

function yuan_img($imgpath) {
        $ext     = pathinfo($imgpath);
        $src_img = null;
        switch ($ext[&#39;extension&#39;]) {
        case &#39;jpg&#39;:
            $src_img = imagecreatefromjpeg($imgpath);
            break;
        case &#39;png&#39;:
            $src_img = imagecreatefrompng($imgpath);
            break;
        }
        $wh  = getimagesize($imgpath);
        $w   = $wh[0];
        $h   = $wh[1];
        $w   = min($w, $h);
        $h   = $w;
        $img = imagecreatetruecolor($w, $h);
        //这一句一定要有
        imagesavealpha($img, true);
        //拾取一个完全透明的颜色,最后一个参数127为全透明
        $bg = imagecolorallocatealpha($img, 255, 255, 255, 127);
        imagefill($img, 0, 0, $bg);
        $r   = $w / 2; //圆半径
        $y_x = $r; //圆心X坐标
        $y_y = $r; //圆心Y坐标
        for ($x = 0; $x < $w; $x++) {
            for ($y = 0; $y < $h; $y++) {
                $rgbColor = imagecolorat($src_img, $x, $y);
                if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
                    imagesetpixel($img, $x, $y, $rgbColor);
                }
            }
        }
        return $img;
    }
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo stellen Sie das Bild in PHP auf ein kreisförmiges Bild ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage