Mặc dù tôi không phải là chuyên gia về PHP, tôi biết rằng vấn đề này không phải là vấn đề quá khó. Những gì bạn muốn làm là tạo ra một đối tượng Imagick mà bạn có thể thêm khung của bạn vào. Với mỗi khung hình, bạn có thể thay đổi các thông số như thời gian, vv ..
Giả sử bạn đang làm việc với hình ảnh được tải lên từ biểu mẫu web cơ bản, tôi đã viết một ví dụ cơ bản lặp lại thông qua hình ảnh được tải lên với tên " image0 ", trong đó" 0 "đi lên đến tuy nhiên nhiều tệp được bao gồm. Bạn có thể tự nhiên chỉ cần thêm hình ảnh bằng cách sử dụng cùng một phương pháp trên tên tập tin cố định hoặc bất cứ điều gì.
$GIF = new Imagick();
$GIF->setFormat("gif");
for ($i = 0; $i < sizeof($_FILES); ++$i) {
$frame = new Imagick();
$frame->readImage($_FILES["image$i"]["tmp_name"]);
$frame->setImageDelay(10);
$GIF->addImage($frame);
}
header("Content-Type: image/gif");
echo $GIF->getImagesBlob();
Ví dụ này tạo đối tượng Imagick là thứ sẽ trở thành GIF của chúng tôi. Các tệp đã được tải lên máy chủ sau đó được lặp qua và mỗi tệp được đọc trước tiên (hãy nhớ rằng kỹ thuật này dựa vào hình ảnh được đặt tên như tôi đã mô tả ở trên), thứ hai sẽ nhận được giá trị trễ và thứ ba được thêm vào GIF-to-be. Đó là ý tưởng cơ bản, và nó sẽ tạo ra những gì bạn đang theo đuổi (tôi hy vọng).
Nhưng có nhiều thứ để làm xáo trộn và cấu hình của bạn có thể trông khác. Tôi luôn tìm thấy tài liệu tham khảo php.net Imagick API đối với loại suck, nhưng nó vẫn còn tốt đẹp để có và tôi sử dụng nó tất cả bây giờ và sau đó để tham khảo những thứ từ ImageMagick tiêu chuẩn.
Hy vọng điều này phần nào phù hợp với những gì bạn đã làm sau.
Để bắt đầu, bạn có thể sử dụng [toán tử thực thi] (http://php.net/manual/en/language.operators.execution.php) (backticks): '\' convert -delay 1/1 -loop 0 * .gif animated.gif \ ''. – hakre
hoặc 'exec()' nhưng điều đó rất lộn xộn và tôi đã nói rằng tôi muốn sử dụng API – jdborg
Vâng, đó là một nhận xét nhiều hơn câu trả lời thực tế. Hướng dẫn sử dụng nói gì? Nó sẽ cung cấp một giao diện tôi nghĩ. – hakre