2012-04-23 47 views
10

Tôi đã googled nhiều nhất có thể, nhưng tôi chỉ tìm thấy lớp PHP gọi Inkscape để hiển thị SVG, vì vậy tôi hỏi tại đây:Hiển thị tệp SVG thành PNG hoặc JPEG trong PHP

Tôi có một tệp SVG hợp lệ được tạo theo cách nào đó (hoặc được tải lên bởi một khách hàng). Tôi cần phải kết xuất nó thành JPG hoặc PNG chỉ bằng PHP và/hoặc GDLib, vì SVG không được tất cả các trình duyệt hỗ trợ.

Tôi không có tùy chọn cài đặt bất kỳ thứ gì, vì vậy một lớp chuyển đổi SVG thành PNG bằng GDLib sẽ là lý tưởng nhất.

Trả lời

20

Kiểm tra xem ImageMagick đã được cài đặt chưa (bạn có thể tìm hiểu bằng cách sử dụng phpinfo). Nếu có, bạn có thể sử dụng đoạn mã sau để che cho PNG.

$image = new Imagick(); 
$image->readImageBlob(file_get_contents('image.svg')); 
$image->setImageFormat("png24"); 
$image->resizeImage(1024, 768, imagick::FILTER_LANCZOS, 1); 
$image->writeImage('image.png'); 

Có nhiều chủ đề thảo luận về vấn đề này. Một trong đó đặc biệt hữu ích là chủ đề này: Convert SVG image to PNG with PHP

+1

Đáng buồn thay, nó không phải, và tôi không thể cài đặt nó. Tất cả những gì tôi có là PHP và GDLib. Nó phải là có thể với GDLib .. Nó gần như chỉ là một bản dịch, có một chức năng GDLib cho hầu như tất cả các thẻ SVG. – DanRedux

+0

GD không hỗ trợ SVG. Wikimedia hỗ trợ * ImageMagik *, * sodipodi *, * inkscape *, * batik *, * rsvg *, * imgserv *. Nếu bạn không thể cài đặt bất cứ điều gì khác, có thể bạn có thể xem nếu những người chuyển đổi có thể chạy độc lập và bạn có thể gọi nó từ kịch bản PHP của bạn. –

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