PHP menggunakan fungsi pemprosesan imej untuk melukis gambar

Mari kita lihat gambar di bawah:

7.png

Bagaimana kita harus melukis gambar ini.

Kita boleh menganalisisnya mengikut langkah-langkah:

1. Lukis gambar

2. Sediakan warna yang diperlukan untuk melukis gambar ini

3. Isikan warna latar belakang

4. Lukis dua garisan pepenjuru

5. Lukis bulatan di atasnya

6. Lukis segi empat tepat pada bulatan

7. Simpan gambar

8. Musnahkan sumber

1. Kami akan memperkenalkan langkah-langkah berdasarkan gambar ini. Mari analisa fungsi yang perlu kita gunakan:

//使用imagecreate函数创建图片,返回资源
$img = imagecreate(500,500);

2. Selepas imej dicipta, kita perlu menambah warna pada sumber imej, dan kita perlu gunakan fungsi

$颜色变量 = imagecolorallocate ( resource $图片资源 , int $红 , int $绿 , int $蓝 )

Merah, hijau dan biru ialah tiga warna asas untuk mengendalikan gambar dalam komputer. Ketiga-tiga warna ini bergabung membentuk semua warna yang kita lihat dengan mata kasar.

Jadi imagecolorallocate terlebih dahulu memasukkan sumber imej dan mengendalikan sumber ini. Sediakan warna untuk aset imej ini.

Ia sama dengan menyediakan kanvas terlebih dahulu dan kemudian cat semasa melukis.

Mengikut gambar ini, warna yang perlu kami sediakan ialah:

1. Hijau

2. Biru

3. Hitam

4. Coklat

Jika ia diperuntukkan mengikut prinsip padanan warna komputer, kod peruntukan warna kami di bawah akan ditulis seperti berikut:

//红
$red = imagecolorallocate($img, 255, 0, 0);
//绿
$green = imagecolorallocate($img, 0, 255, 0);
//蓝
$blue = imagecolorallocate($img, 0, 0, 255);
//棕
$yellow = imagecolorallocate($img, 121, 72, 0);

Sedikit yang perlu digunakan dalam gambar ini Nilai warna sesuatu warna.

3. Tambahkan warna pada latar belakang untuk mengisinya

imagefilledrectangle ( resource $图片资源 , int $点1x轴, int $点1y轴 , int $点2x轴 , int $点2y轴 , int $color )

Fungsi ini memerlukan sedikit pengetahuan tentang geometri.

1. Titik terdiri daripada koordinat x dan koordinat y untuk membentuk satu titik

2. Dua titik boleh membentuk garis lurus

3. Jika garis ini bukan mendatar atau menegak Garis boleh membentuk segi empat tepat

seperti yang ditunjukkan di bawah:

document_2015-09-19_55fd0d5be46bb.png

Titik 1 dan titik 2 boleh ditukar menjadi segi empat tepat. Oleh itu, kami mengeluarkan dua titik koordinat dan boleh mengisi kanvas.

Jika anda ingin mengisi keseluruhan kanvas:
Titik 1 ialah paksi-x dan kedudukan 0 kanvas, dan paksi-y bagi titik 1 juga ialah kedudukan 0 kanvas.

Paksi-x titik 2 ialah kedudukan 500 kanvas, dan paksi-y titik 2 juga ialah kedudukan 500 kanvas.

4. Lukiskan dua garisan pepenjuru

Lukiskan garisan pepenjuru, garisan pepenjuru berwarna merah.

Koordinat pepenjuru pertama ialah 0 dan 0, 500 dan 500
Koordinat pepenjuru kedua ialah 500 dan 0, 0 dan 500

imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

5. Lukiskan bulatan di atasnya

bool imagefilledellipse ( resource $图片资源 , int $圆心x , int $圆心y , int $圆的宽 , int $圆的高 , int $圆的颜色 )
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

Manipulasi sumber ini dan tulis koordinat pusat bulatan. Kemudian tulis panjang dan lebar. Jika panjang dan lebar adalah konsisten, ia adalah bulatan sempurna; jika ia tidak konsisten, ia adalah elips.

6. Lukiskan segi empat tepat di atas bulatan

imagefilledrectangle($img, 200, 200, 300, 300, $blue);

Kami telah membincangkan perkara ini dalam yang di atas, jadi kami tidak akan pergi ke butiran.

7. Simpan gambar

bool imagejpeg ( resource $image [, string $filename])

8. Musnahkan sumber gambar

rreee

Mari kita lihat kod gabungan terakhir:

imagedestroy($img);


Meneruskan pembelajaran
||
<?php //创建图片 $img = imagecreatetruecolor(500, 500); //分配颜色 $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $pur = imagecolorallocate($img, 255, 0, 255); $yellow = imagecolorallocate($img, 121, 72, 0); //填充背景 imagefilledrectangle($img, 0, 0, 500, 500, $green); //画对角线 imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue); //画圆 imagefilledellipse($img, 250, 250, 200, 200, $yellow); //圆中间画矩形 imagefilledrectangle($img, 200, 200, 300, 300, $blue); //保存图片,图片名为haha.jpg imagejpeg($img, 'haha.jpg'); //销毁资源 imagedestroy($img); ?>
  • Cadangan kursus
  • Muat turun perisian kursus