Create paperclip attachment from rmagick image

前端 未结 3 1427
粉色の甜心
粉色の甜心 2021-01-04 20:04

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         


        
相关标签:
3条回答
  • 2021-01-04 20:40

    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...

    0 讨论(0)
  • 2021-01-04 20:53

    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.

    0 讨论(0)
  • 2021-01-04 21:01

    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
    
    0 讨论(0)
提交回复
热议问题