I have a problem to find a way to save an image created with RMagick in a paperclip attachment.
imageList = Magick::ImageList.new
imageList.new(\"images/appl
Let's see if that's what you need
picture = imageList.flatten_images
file = Tempfile.new('my_picture.jpg')
picture.write(file.path)
YourModel.create(:picture => file, ...)
Change YourModel
with the model you are using...
In the later versions of Paperclip (mine is 5.0.0
), you'll need to provide Paperclip's own Tempfile
instance:
file = Paperclip::Tempfile.new(["processed", ".jpg"])
thumb.write(file.path)
result = YourModel.create(image: file)
This preserves the file extension at the end of the filename, so that it is recognized by Paperclip when it's uploaded.
You should force the extension on TempFile.new; in this case I pull the original image from S3 or some such, this is happening in the model of course:
orig_img = Magick::ImageList.new(self.photo.url(:original))
#process image here
# Force extension with array form:
file = Tempfile.new(['processed','.jpg'])
orig_img.write(file.path)
self.photo = file
self.save