需要使用attachment_fu重新处理图像的想法

时间:2010-05-13 21:50:50

标签: ruby-on-rails ruby scripting attachment-fu

由于Rails应用程序和宝石升级以及之前开发人员的未记录代码,我在Rails应用程序中发现了一个错误。我有很多已处理过的图像,但使用attachment_fu时尺寸不正确。自升级以来上传的所有图像都需要正确调整大小。

有没有人有任何想法来重新处理文件夹中的所有图像并将它们调整到正确的大小?我不想手动完成这些操作。

谢谢! 辛迪

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。这是我编写的一个小方法,可以重新生成整个批次,包括调整大小到新的缩略图,以及纠正其他问题,例如损坏的父图像大小。

希望它有所帮助! 山姆, @samotage

def self.rebuild_thumbnails
    images = UserUpload.find(:all)
    processed = 0
    not_processed = 0
    puts "---------------------------------"
    puts "rebuilding thumbnails"
    puts " "
    images.each do |image|
      this_type = image.type.to_s
      puts "processing upload: #{image.id} of type: #{this_type}"
      if image.thumbnailable?
        puts "bingo! It's thumbnailable, now rebuilding."
        image.thumbnails.each { |thumbnail| thumbnail.destroy }
        puts "Re-generating main image witdh and height"
        image.save
        puts "Regenerating thumbnails..."
        image.attachment_options[:thumbnails].each { |suffix, size| image.create_or_update_thumbnail(image.create_temp_file, suffix, *size) }
        processed += 1
        puts "Now processed #{processed} images"
        puts ""
      else
        not_processed += 1
      end
    end
    return processed
  end

答案 1 :(得分:1)

attachment_fu使用imagemagic,所以你(可能)已经安装了它。以下是通过命令行http://www.imagemagick.org/script/command-line-processing.php

使用它的方法

答案 2 :(得分:0)

我在Gist上找到了这段代码。我很好地在Amazon S3上调整Attachment_fu资源的大小

Rake task code on Gist