4

IMGKit のコード サンプルはあまりないので、以下に投稿しました。

メタタグを介してwkhtmltoimageにオプションを渡すことができると書かれているIMGKitのドキュメントを調べました。そこで、機能しない次のメタ タグを含むページを作成しました。

<!DOCTYPE html>
<html>
    <head>
        ...
        <meta name="imgkit-height" content="420" />
        ...
    </head>
    <body>
        ...
    </body>
</html>
4

1 に答える 1

13

コメントや回答なしで 2 週間にわたって 127 回の閲覧があったため、回答を得るために全力を尽くしました。さらに、この gem にはほとんど出回っていないので、サンプルとしてプロセスとコード全体を追加しようと思いました。

開発のためのインストール: MAC OSX

  1. 「gem インストール imgkit」
  2. 「バンドルのインストール」
  3. rvm を使用しているため、wkhtmltoimage のインストールは少し面倒でした。「rvmsudo」によるインストール方法はうまくいきませんでした。ここでMac OSX 用の wkhtmltoimage-OSX-0.10.0_rc2-static.tar.bz2 をダウンロードし、解凍して、wkhtmltoimage ファイルを usr/local/bin にコピーしました。私たちのサーバーはUbuntuを利用しています...うまくいくことを願っています...お知らせします。
  4. コマンド wkhtmltoimage http://www.google.com test.jpg を使用して wkhtmltoimage をテストしたところ、すべて正常に機能しました。
  5. IMGKit のドキュメントに従って、png と jpeg の MIME タイプを追加しました。

本番用のインストール: Ubuntu 10.04 LTS

  1. 「gem インストール imgkit」
  2. 「バンドルのインストール」
  3. 「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>
于 2012-04-14T04:47:14.447 に答える