My Railsアプリはcarrierwaveを使用して画像のアップロードを管理します。私は自分のサイトに画像の透かしバージョンを持っています。以前、私はそうのように、それらの画像を重ね合わせた。Rails:Carrierwaveのバージョンを変更しても古い画像は変更されません
def watermark
manipulate! do |img|
logo = Magick::Image.read("#{Rails.root}/public/images/plc-watermark.png").first
img = img.composite(logo, Magick::SouthEastGravity, Magick::OverCompositeOp)
end
end
を今私はそうのように、テキストを重ねています:
def watermark
manipulate! do |img|
text = Magick::Draw.new
text.gravity = Magick::CenterGravity
text.pointsize = 12
text.font = "#{Rails.root}/public/fonts/hn300.ttf"
text.stroke = 'none'
text.annotate(img, 0, 0, 0, 0, "Photo © #{model.user.full_name}\nHosted by Placeology.ws\nPlease log in to remove this watermark")
img
end
end
を今、これは新しいイメージのために動作しますが、私はrecreate_versionsを呼び出すときに!古い写真は置き換えられません。この新しいウォーターマークを古いものに置き換えるにはどうしたらいいですか?
私はAmazon S3で開発と生産の両方のストレージにFogを使用しています。
これは私が持っていた問題を正しく特定しています。私は若干異なる解決法を考え出したが、これはうまくいく。 – Andrew
提案してくれてありがとう、私も同様の問題があった。私の問題の解決策は、生成された新しいファイルの名前が異なることを確認することでした。 –
これをもう一度やり直さなければならなかったのですが、フォグ(S3)を使って画像全体(すべてのバージョンを含む)を再生成するためにこのようなことをしました: 'record.remote_image_url = record.image_url; i.save! ' –