Tôi đang tạo kịch bản để thay đổi kích thước hình ảnh trong Symfony2.Chuyển đổi hình ảnh thành chuỗi (đối với Symfony2 Response)
Như tôi muốn để có thể sử dụng hệ thống phản ứng Symfony2 tiêu chuẩn ...
$headers = array('Content-Type' => 'image/png',
'Content-Disposition' => 'inline; filename="image.png"');
return new Response($img, 200, $headers); // $img comes from imagecreatetruecolor()
... Tôi cần một chuỗi để gửi đi như một phản ứng. Thật không may, các chức năng như imagepng
chỉ ghi tệp hoặc xuất trực tiếp lên trình duyệt chứ không phải trả về chuỗi.
Cho đến nay các giải pháp duy nhất mà tôi đã có thể nghĩ đến là
1] lưu hình ảnh vào một vị trí tạm thời và sau đó đọc nó một lần nữa
imagepng($img, $path);
return new Response(file_get_contents($path), 200, $headers);
2] sử dụng đầu ra đệm
ob_start();
imagepng($img);
$str = ob_get_contents();
ob_end_clean();
return new Response($str, 200, $headers);
Có cách nào tốt hơn không?
tôi khuyên bạn nên sử dụng [ImagineBundle] (https://github.com/avalanche123/AvalancheImagineBundle). Theo tôi, đó là một gói thực sự tốt đẹp cho bất kỳ loại thao tác hình ảnh nào. Mặc dù chỉ có một bộ lọc (tạo hình thu nhỏ), bạn có thể viết các gói của riêng bạn. Chỉ cần nghĩ rằng tôi muốn chia sẻ tìm thấy của tôi với bạn :) – gilden
@ gilden, tôi sẽ xem xét nó, cảm ơn! – Czechnology