コメントや回答なしで 2 週間にわたって 127 回の閲覧があったため、回答を得るために全力を尽くしました。さらに、この gem にはほとんど出回っていないので、サンプルとしてプロセスとコード全体を追加しようと思いました。
開発のためのインストール: MAC OSX
- 「gem インストール imgkit」
- 「バンドルのインストール」
- rvm を使用しているため、wkhtmltoimage のインストールは少し面倒でした。「rvmsudo」によるインストール方法はうまくいきませんでした。ここでMac OSX 用の wkhtmltoimage-OSX-0.10.0_rc2-static.tar.bz2 をダウンロードし、解凍して、wkhtmltoimage ファイルを usr/local/bin にコピーしました。私たちのサーバーはUbuntuを利用しています...うまくいくことを願っています...お知らせします。
- コマンド wkhtmltoimage http://www.google.com test.jpg を使用して wkhtmltoimage をテストしたところ、すべて正常に機能しました。
- IMGKit のドキュメントに従って、png と jpeg の MIME タイプを追加しました。
本番用のインストール: Ubuntu 10.04 LTS
- 「gem インストール imgkit」
- 「バンドルのインストール」
- 「sudo imgkit --install-wkhtmltoimage」は飛びませんでした。wkhtmltoimage には AMD64 および i386 バージョンがあります。サーバーのCPUがIntelであることがわかっ
cat /proc/cpuinfo
たので、i386バージョンを手動で/usr/local/binにインストールしました。wkhtmltoimage-i386 ファイルのパーミッションを変更して、実行できるようにしました。また、IMGKit がファイルを認識できるようにするには、ファイルの名前を変更して、「-i386」を削除する必要がありました。
IMGKit 関数を呼び出すコントローラー。
def email_profile
...
filename = current_user.username + "_" + cur_date + '.jpg'
kit = IMGKit.new("https://www.myapp.com/applet/?auth_token=" + token)
img = kit.to_img(:jpg)
file = kit.to_file(Rails.root + "public/profile_images/" + filename)
...
end
「アプレット」コントローラー
このビューはブラウザーでレンダリングされることはありません。読み込むのはIMGKit/wkhtmltoimage専用です。別の Rails レイアウト ファイルがレンダリングされることに注意してください。
class AppletController < ApplicationController
def index
render(:layout => "layouts/applet_lo")
end
end
レイアウトファイル
レイアウト ファイルには、wkhtmltoimage オプションを呼び出して IMGKit gem を介して画像をトリミングする新しいメタ タグがあります。それでもうまくいきません。gem の作成者は返信し、この機能は扱いにくいと述べました。これが修正されるまで、ミニマジックを使用してトリミングしています。
<!DOCTYPE html>
<html>
<head>
<meta name="imgkit-crop-h" content="990">
<meta name="imgkit-crop-w" content="635">
</head>
<body>
<%= yield %>
</body>
</html>