2013-05-29 28 views
5

Tôi đang cố gắng chuyển đổi tệp sang định dạng cụ thể để tôi có thể chuyển đổi thành tệp. Tôi biết kỹ thuật lưu vào đĩa và chỉ định tiện ích mở rộng để chuyển đổi sang định dạng khác, như sau:RMagick - chuyển đổi tệp sang định dạng khác mà không lưu vào đĩa

img.write("another_filename.jpg") 

Tôi không cần phải chạm vào đĩa trong quá trình chuyển đổi.

Có cách nào khác không?

Trả lời

6

Bạn có thể chỉ định định dạng khi gọi to_blob. Từ fine manual:

to_blobimg.to_blob[{} đối số tùy chọn] -> chuỗi

[...]
luận Không cần thiết, tuy nhiên bạn có thể chỉ định các định dạng hình ảnh (chẳng hạn như JPEG, PNG, v.v.) và độ sâu bằng cách gọi thuộc tính định dạng và độ sâu, cũng như các thuộc tính khác Image::Info thích hợp, trong một khối liên kết với phương pháp.

Vì vậy, bạn có thể nói những điều như thế này:

png_bytes = img.to_blob { |attrs| attrs.format = 'PNG' } 

Vâng, giao diện để to_blob là một chút kỳ quặc nhưng giao diện lạ chỉ là một phần của niềm vui khi làm việc với ImageMagick.

Bạn cũng có thể sử dụng trước khi gọi format= methodto_blob:

img.format = 'PNG' 
png_bytes = img.to_blob 
+0

trình như ... phép thuật. * shades * Cảm ơn! –

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