2

ユーザーが好きなようにメニューを作成できるCMSのようなアプリケーションを開発しています。理想的には、各メニュー オブジェクトは背景付きのテキストではなく、テキストのイメージです。私はこれを次の 2 つの方法のいずれかで想定しています。

a)すべての文字とスクリプトを含む/複数の画像ファイルでフォントをレンダリングすることにより、単語を指定すると、一連の画像をつなぎ合わせるか、すべての文字を組み合わせた単一の画像ファイルが得られます。これは手動で行うことができることは理解していますが、おそらくこれを支援するライブラリがあると思います。

b)グラデーションカラー、シャドウ、グローなどのいくつかのブレンド効果でテキストをレンダリングできるある種のイメージングライブラリを使用します。これは少し難しいと思いますが、このニーズに合ったものがあるかもしれません.

これまたは同様のことを行うライブラリに関するヒントはありますか?

前もって感謝します!

ブルーノ

4

5 に答える 5

3

Imagemagick を使用しています。

http://www.imagemagick.org/Usage/text/#attributes

これにより、テキスト付きのシンプルなボタンがレンダリングされます。

convert -background white -fill dodgerblue  -font Candice -strokewidth 2  -stroke blue   -undercolor lightblue  -size 165x70 -gravity center label:Anthony     label_color.gif

これを Python モジュールにラップするのは簡単です。

于 2011-03-02T04:44:46.143 に答える
2

最近は Web フォントと CSS を使用することにしましたが、数年前にこの問題に直面し、渡された URL パラメーターに従って、ファイルのテンプレート化された画像内にテキストを生成する小さなプロジェクトをまとめました。

プロジェクトはまだここで公開されています: https://bitbucket.org/jsbueno/dynabutton - CGI スクリプトとして動作するように作られていますが、より効率的なサーバーで動作するように簡単に適応させることができます (いくつかのセキュリティ チューニングをお勧めします)。オンラインに置く場合も同様です)。また、サーバー サイド スクリプトを使用してすべての画像を生成し、結果の画像ファイルをオンラインに置くこともできます。

(下で PIL を使用します)

ああ、そうです、適切なパラメーターでシャドウとグローを行うことができ、サーバーにインストールされたフォントを使用でき、背景を提供するために画像テンプレートを使用するため、手動で効果を適用できます. (ただし、含まれているテンプレートはかなり素人っぽいです)

于 2011-03-02T05:00:22.793 に答える
0

cairo レンダリング パッケージのバインディングであるpycairoを確認してください。グラフィックだけでなくテキストも表示できます。

于 2011-03-02T04:37:58.273 に答える
0

最近の CSS 技術により、クライアント側のフォントが一致しないという問題は、最近ではあまり問題になりません。それでも、テキストから画像へのツールに対する需要はあります。

この質問に対する答えとしてPILがよく出されますが、個人的にはpythonmagickについても詳しく見ていきます。あなたに最適なものを選んでください。

于 2011-03-02T04:41:09.750 に答える
0

実際、pygtk にはpango rendererもあります。

于 2011-03-02T04:42:06.103 に答える