2011-12-24 39 views
7

Điều này có tác dụng nếu tôi giữ tập lệnh trong cùng thư mục với hình ảnh đang được thao tác. Và hình ảnh kết quả "foo.jpg" cũng được tạo trong cùng một vị trí.Cách sử dụng hàm writeImage() của imagick?

<?php 

$im = new imagick('image.jpg'); 
$im->thumbnailImage(200, 0); 
$im->writeImage("foo.jpg"); 

?> 

Nhưng nếu kịch bản là tại một địa điểm và hình ảnh tôi muốn làm việc với là trong một và vị trí tôi muốn lưu hình thu nhỏ để là ở một nơi khác, làm thế nào để xác định các đường dẫn?

Làm một cái gì đó như thế này không hoạt động:

$im = new imagick('path/to/image.jpg'); 
+0

Kiểm tra không gian tên chính xác, \ Hình ảnh nếu bạn đang sử dụng quy ước PSR. Hoặc có thể kiểm tra các tên phân biệt chữ hoa chữ thường, 'Imagick' thay vì 'imagick'. Bạn cũng có thể tham khảo pathinfo(), file_exists(), is_writable() hoặc dirname() với cờ, để có được các đường dẫn thích hợp và nối với tên tệp. Nhưng cả hai cách bạn phải thiết lập một thư mục cơ bản mà từ đó bạn trỏ đến tất cả các tệp. Tuỳ bạn. –

Trả lời

5

Có thể một số vấn đề hệ thống tập tin. Hãy thử và lấy một con trỏ tập tin trong php đầu tiên và kiểm tra bất kỳ vấn đề nào

$fileHandle = fopen("path/to/image.jpg", "w"); 

Sau đó, bạn có thể sử dụng chức năng Imagick (phiên bản 6.3.6 hoặc mới hơn);

$im->writeImageFile($filehandle); 
+0

Có lẽ bạn nên khai báo: $ imagick = new Imagick ('path/to/image'); $ imagick-> writeImage ('đường dẫn/đến/hình ảnh'); $ imagick-> close(); $ imagick-> destroy(); để giải phóng tất cả các tài nguyên. –

Các vấn đề liên quan