Lưu trữ cho các chức năng

Làm thế nào để chia Một hình ảnh vào nhiều ảnh Sử dụng PHP

Đăng trong chức năng , php bởi ShortLikeAFox ngày 26 tháng 8 2008

Vì vậy, bạn muốn chia một hình ảnh lớn thành nhiều hình ảnh nhỏ hơn? Không có vấn đề gì. Điều này có vẻ giống như một vấn đề tối nghĩa, nhưng có nhiều lý do bạn muốn làm điều này. Có lẽ bạn muốn tạo một hình ảnh puzzle trượt . Hoặc có thể bạn đang chạy một chủ đề WordPress độc đáo . Hoặc có thể bạn muốn tạo ra một cắt dán của một số loại. Nó thực sự không quan trọng tại sao bạn muốn chia nhỏ một hình ảnh vào hình ảnh nhỏ hơn, PHP làm cho nhiệm vụ này dễ dàng. Ví dụ dưới đây chỉ đề với hình ảnh JPEG. Thay đổi chức năng để đối phó với các loại hình ảnh sẽ không được là khó.

<? Php
/ / Chức năng này sẽ chia một hình ảnh thành một số có kích thước bằng nhau và các hàng cột.
split_image chức năng ($ number_of_rows, $ number_of_cols, $ path_to_image, $ FILE_NAME) (

/ / $ Number_of_rows = # của hàng bạn muốn;
/ / $ Number_of_cols = # của cols bạn muốn
/ / $ Path_to_image = đường dẫn đến thư mục ảnh có trong, một cái gì đó như: nhà / / tên người dùng nội dung / / html / list / uploads /
/ / $ FILE_NAME = Các tên tập tin của hình ảnh: archery.jpg, vv

/ / Phân tích cú pháp đường dẫn gia hạn
$file_name); $ Info = pathinfo ($ path_to_image. $ FILE_NAME);

/ / Chắc chắn rằng chúng ta đang đối phó với một jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info 'mở rộng [']) == 'jpg') | | (strtolower ($ info 'mở rộng'] [) == 'jpeg')) (

/ / Tải hình ảnh và nhận được kích thước hình ảnh
); $ Source = imagecreatefromjpeg ("($ path_to_image) ($ FILE_NAME)");
$ Width = imagesx ($ source); / / Tìm chiều rộng
$ Chiều cao = imagesy ($ source); / / Tìm chiều cao
$ Segment_width = $ chiều rộng / number_of_cols $; / / Xác định độ rộng của các phân đoạn cá nhân
$ Segment_height = $ chiều cao / number_of_rows $; / / Xác định chiều cao của các phân đoạn cá nhân

cho ($ col = 0; $ col <number_of_cols; col $ $ + +)
(

cho ($ hàng = 0; $ hàng <number_of_rows $; $ hàng + +)
(

, $col, $row ); $ Fn = sprintf ("img 02d_%% 02d.jpg", $ col, $ hàng);
); //I print the image name here, so that the process shows itself as it runs echo ("$ fn"); / / tên tôi in hình ảnh ở đây, vì vậy mà quá trình này cho thấy chính nó như là nó chạy
$ Im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ nguồn, 0, 0, $ col * $ segment_width, $ hàng * $ segment_height, $ segment_width, $ segment_height, $ segment_width, $ segment_height);
$ File = "test.jpg";
/ / Lưu hình ảnh
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "INSERT ĐIỂM ĐẾN ĐÂY", 100)) / / Những điểm đến sẽ được cái gì như / home / c / nội dung / h / d / hình ảnh / $ fn

echo ("Có được thực hiện"! <br/>);

)

)

)

)

?>

Làm thế nào để Hình ảnh Hình thu nhỏ Sử dụng PHP

Đăng trong chức năng , php bởi ShortLikeAFox ngày 22 tháng 7 năm 2008

Vì vậy, bạn muốn tạo một hình nhỏ, từ một hình ảnh cho ... PHP làm cho nhiệm vụ này dễ dàng. Lần đầu tiên tôi đã viết chức năng dưới đây để đối phó với các hình ảnh tải lên bởi người sử dụng tại một trang web Tôi giúp quản lý. Đăng tải hình ảnh cho trang web này có thể được hình ảnh JPEG, pngs, hoặc gifs, vì vậy tôi đã phải viết một chức năng để đối phó với cả ba. Mã này có nguồn gốc là dựa tắt của một chức năng tìm thấy tại webcheatsheet.com

Làm thế nào để làm điều đó:

createThumbs chức năng ($ pathToImages, $ fname, pathToThumbs $, $ thumbWidth)
(

/ / Phân tích cú pháp đường dẫn gia hạn

$ Info = pathinfo ($ pathToImages. $ Fname);
/ / Chỉ tiếp tục nếu điều này là một hình ảnh JPEG
($info['extension']) == 'jpeg') ) if ((strtolower ($ info 'mở rộng [']) == 'jpg') | | (strtolower ($ info 'mở rộng'] [) == 'jpeg'))
(

/ / Tải hình ảnh và nhận được kích thước hình ảnh
$ Img = imagecreatefromjpeg ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Chiều cao = imagesy ($ img);

/ / Tính toán kích thước hình nhỏ
$ New_width = $ thumbWidth;
$ New_height = sàn ($ chiều cao * ($ thumbWidth / $ chiều rộng));

/ / Tạo ra một hình ảnh mới tạm thời
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Sao chép và hình ảnh cũ thay đổi kích thước thành hình ảnh mới
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, new_width, $ new_height $, $ chiều rộng, chiều cao $);

/ / Lưu hình thu nhỏ vào một file
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

if (strtolower ($ info 'mở rộng [']) == 'gif')
(

/ / Tải hình ảnh và nhận được kích thước hình ảnh
$ Img = imagecreatefromgif ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Chiều cao = imagesy ($ img);

/ / Tính toán kích thước hình nhỏ
$ New_width = $ thumbWidth;
$ New_height = sàn ($ chiều cao * ($ thumbWidth / $ chiều rộng));

/ / Tạo ra một hình ảnh mới tạm thời
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Sao chép và hình ảnh cũ thay đổi kích thước thành hình ảnh mới
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, new_width, $ new_height $, $ chiều rộng, chiều cao $);

/ / Lưu hình thu nhỏ vào một file
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

if (strtolower ($ info 'mở rộng [']) == 'png')
(

/ / Tải hình ảnh và nhận được kích thước hình ảnh
$ Img = imagecreatefrompng ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Chiều cao = imagesy ($ img);

/ / Tính toán kích thước hình nhỏ
$ New_width = $ thumbWidth;
$ New_height = sàn ($ chiều cao * ($ thumbWidth / $ chiều rộng));

/ / Tạo ra một hình ảnh mới tạm thời
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Sao chép và hình ảnh cũ thay đổi kích thước thành hình ảnh mới
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, new_width, $ new_height $, $ chiều rộng, chiều cao $);

/ / Lưu hình thu nhỏ vào một file
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

)

Làm thế nào tác phẩm này

Các chức năng createThumbs có bốn đối số.

  • $ PathToImages -> Đường dẫn đến thư mục tập tin hình ảnh được in Nó có thể trông giống như sau: / home / nội dung / tên người dùng / html danh sách / / upload /
  • $ Fname -> Các tên tập tin: pic1.gif, johnny.jpg, vv ...
  • pathToThumbs $ -> Các đường dẫn đến thư mục mà bạn muốn hình ảnh thu nhỏ được in Bạn KHÔNG muốn điều này để được cùng một con đường là $ pathToImages, bởi vì các hình ảnh thumbnail sẽ có cùng tên với ảnh gốc.
  • $ ThumbWidth -> Chiều rộng mà bạn muốn hình nhỏ để được trong pixel.

Một lưu ý quan trọng mà tôi cần làm ở đây là chức năng này không có gì thay, khác hơn là kiểm tra tập tin mở rộng, để đảm bảo rằng các tập tin chứa hình ảnh không có gì độc hại. Kể từ khi createThumbs tập tin () làm việc với đã được tải lên nó được giả định rằng các tập tin đã được xem xét kỹ lưỡng đúng.

Các createThumbs điều đầu tiên (), không có gì gọi pathinfo () . pathinfo () phá vỡ các phần của một đường dẫn vào một mảng. Điều này rất hữu ích cho chúng tôi, bởi vì chúng ta cần mở rộng tập tin đúng tạo hình thu nhỏ. createThumbs Next () kiểm tra xem nếu chúng ta đang đối phó với một jpeg. Nếu tập tin gốc là một createThumbs jpeg tạo ra một hình ảnh mới dựa trên các hình ảnh ban đầu với imagecreatefromjpeg () . Bước tiếp theo là để có được chiều rộng và chiều cao của hình ảnh này ( imagesx () , imagesy () ). Sử dụng $ thumbWidth và tỷ lệ của chiều rộng ban đầu và createThumbs chiều cao () bộ chiều rộng mới và chiều cao của hình nhỏ. Sử dụng những createThumbs mới tỷ lệ () tạo ra một "hình ảnh" trống sẽ được cùng một chiều rộng và chiều cao của hình thu nhỏ với imagecreatetruecolor () . imagecopyresized () được sử dụng để thay đổi kích cỡ hình ảnh và lưu nó trong "trống" vừa tạo. imagecopyresized () có thể có vẻ như nó có rất nhiều thông số, nhưng nếu bạn đi xem một tài liệu hướng dẫn nó thực sự không phải là phức tạp. Bây giờ hình ảnh thu nhỏ những tồn tại như là một hình ảnh màu sắc chân thật tất cả createThumbs cần làm là chuyển đổi tập tin vào một jpeg. Để làm điều này imagejpeg () được gọi.

Đó là cách chức năng hoạt động cho hình ảnh JPEG. Có sự khác biệt tối thiểu cho. Pngs và. Gifs.