Hướng dẫn how to drawing image on the server in php? - cách vẽ hình ảnh trên máy chủ bằng php?

9.4.2. Thay đổi định dạng đầu ra

Như bạn có thể đã suy luận, việc tạo một luồng hình ảnh thuộc một loại khác chỉ yêu cầu hai thay đổi cho tập lệnh: Gửi một loại nội dung khác và sử dụng chức năng tạo hình ảnh khác. Ví dụ 9-2 cho thấy ví dụ 9-1 được sửa đổi để tạo JPEG thay vì hình ảnh PNG.

Ví dụ 9-2. Phiên bản JPEG của Quảng trường Đen

9.4.3. Kiểm tra các định dạng hình ảnh được hỗ trợ

Nếu bạn đang viết mã phải di động trên các hệ thống có thể hỗ trợ các định dạng hình ảnh khác nhau, hãy sử dụng hàm ImageTypes () để kiểm tra các loại hình ảnh nào được hỗ trợ. Hàm này trả về một trường bitfield; Bạn có thể sử dụng bitwise và toán tử (&) để kiểm tra xem một bit nhất định có được đặt không. Các hằng số IMG_GIF, IMG_JPG, IMG_PNG và IMG_WBMP tương ứng với các bit cho các định dạng hình ảnh đó.

Ví dụ 9-3 tạo các tệp PNG nếu PNG được hỗ trợ, các tệp JPEG nếu PNG không được hỗ trợ và các tệp GIF nếu không hỗ trợ PNG và JPEG.

Ví dụ 9-3. Kiểm tra hỗ trợ định dạng hình ảnh

9.4.5. Chức năng vẽ cơ bản

GD có các chức năng để vẽ các điểm cơ bản, đường, cung, hình chữ nhật và đa giác. Phần này mô tả các chức năng cơ sở được hỗ trợ bởi GD 1.x.

Hàm cơ bản nhất là ImageSetPixel (), đặt màu của một pixel được chỉ định:

ImageSetPixel(image, x, y, color);

Có hai chức năng cho các dòng vẽ, ImageLine () và ImageDashEdline ():

ImageLine(image, start_x, start_ y, end_x, end_ y, color);
ImageDashedLine(image, start_x, start_ y, end_x, end_ y, color);

Có hai chức năng để vẽ hình chữ nhật, một hàm chỉ cần vẽ phác thảo và một hàm lấp đầy hình chữ nhật với màu được chỉ định:

ImageRectangle(image, tlx, tly, brx, bry, color);
ImageFilledRectangle(image, tlx, tly, brx, bry, color);

Chỉ định vị trí và kích thước của hình chữ nhật bằng cách truyền tọa độ của các góc trên bên trái và dưới cùng bên phải.

Bạn có thể vẽ các đa giác tùy ý với các hàm ImagePolygon () và ImageFillSpolygon ():

ImagePolygon(image, points, number, color);
ImageFilledPolygon(image, points, number, color);

Cả hai chức năng đều có một loạt các điểm. Mảng này có hai số nguyên (tọa độ X và Y) cho mỗi đỉnh trên đa giác. Đối số số là số lượng các đỉnh trong mảng (thường đếm ($ points)/2).

Hàm IMAGEARC () vẽ một vòng cung (một phần của hình elip):

ImageArc(image, center_x, center_ y, width, height, start, end, color);

Hình elip được xác định bởi tâm, chiều rộng và chiều cao của nó (chiều cao và chiều rộng là giống nhau cho một vòng tròn). Các điểm bắt đầu và cuối của vòng cung được đưa ra dưới dạng độ đếm ngược chiều kim đồng hồ từ 3 giờ. Vẽ hình elip đầy đủ với bắt đầu 0 và kết thúc 360.

Có hai cách để điền vào các hình dạng đã được vẽ. Hàm ImageFill () thực hiện lấp đầy lũ, thay đổi màu của các pixel bắt đầu tại vị trí đã cho. Bất kỳ thay đổi trong màu pixel đánh dấu các giới hạn của điền. Hàm ImageFillToBorder () cho phép bạn vượt qua màu cụ thể của giới hạn điền:

ImageFill(image, x, y, color);
ImageFillToBorder(image, x, y, border_color, color);



Hướng dẫn how to drawing image on the server in php? - cách vẽ hình ảnh trên máy chủ bằng php?

Bản quyền © 2003 O'Reilly & Associates. Đã đăng ký Bản quyền.

Tạo và vẽ hình ảnh

Hiện tại, hãy để bắt đầu với ví dụ GD đơn giản nhất có thể. Ví dụ & NBSP; 9-1 là một tập lệnh tạo ra một hình vuông chứa đầy màu đen. Mã hoạt động với bất kỳ phiên bản GD nào hỗ trợ định dạng hình ảnh PNG.

Ví dụ & nbsp; 9-1. & Nbsp; một hình vuông màu đen trên nền trắng (black.php)

php
$image = imagecreate(200, 200);

$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($image, 0x00, 0x00, 0x00);
imagefilledrectangle($image, 50, 50, 150, 150, $black);

header("Content-Type: image/png");
imagepng($image);

Ví dụ & NBSP; 9-1 minh họa các bước cơ bản trong việc tạo bất kỳ hình ảnh nào: tạo hình ảnh, phân bổ màu sắc, vẽ hình ảnh và sau đó lưu hoặc gửi hình ảnh. Hình & nbsp; 9-1 cho thấy đầu ra của ví dụ & nbsp; 9-1.

Hướng dẫn how to drawing image on the server in php? - cách vẽ hình ảnh trên máy chủ bằng php?

Hình & NBSP; 9-1. & NBSP; Một hình vuông màu đen trên nền trắng

Để xem kết quả, chỉ cần trỏ trình duyệt của bạn vào trang black.php. Để nhúng hình ảnh này vào một trang web, hãy sử dụng: