問題タブ [aggdraw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1738 参照

python - このエラーの後に aggdraw をインストールするにはどうすればよいですか?

aggdraw python ライブラリをインストールして高品質のグラフィックスを作成しようとしていますが、次のエラーが発生し続けます。

この問題の回避策は何ですか? どうすればインストールできますか?

0 投票する
1 に答える
397 参照

python - Python `aggdraw`モジュールのバグ(?):目に見えるアルファチャネル

簡単なスクリプトを想像してみてください。

そして結果: ここに画像の説明を入力してください

(大きいサイズで申し訳ありませんが、それはより明確です)

そして問題: あなたは非黄色と非白のエッジを見ることができますか?これはアルファチャネルか何かです。

PILのオブジェクトのみを使用してこれを実行しようとするとDraw、見た目ははっきりと良くなりますが、アンチエイリアス処理は行われません。

しかし、aggdrawDrawオブジェクトでは、アンチエイリアス処理されているように見えますが、その醜い汚れたエッジがあります。

非標準の側面角度を持つポリゴンが正確に必要です。シンプルな箱は私が欲しいものではありません。

この問題を解決する方法について、楽観的な答えを教えてください。

0 投票する
1 に答える
949 参照

python - Python PIL:PILを使用して画像を変更すると、Flush()が機能しません

上記は私が実行しているコードです。show()PILが機能していないように見えるため、Webブラウザを使用して画像を開きます。上記はBackground.pngを変更せずに返します。

どんな入力でもいただければ幸いです。

0 投票する
1 に答える
1049 参照

python - aggdraw はフォントを読み込めません (テキスト レンダラーがありません)

これらの手順を使用して、Apple のストック Python (2.7.2) を使用して OS X 10.8 にaggdrawをインストールしました。そうする前に、homebrew を使用して freetype をインストールし、aggdraw の setup.py を変更して、freetype インストール ( 32 行目) を指すようにしました。FREETYPE_ROOT = "/usr/local/Cellar/freetype/2.4.10/"

これらすべてにもかかわらず、フォントをロードしようとすると、次のようになります。

test.py は次のようになります。

aggdraw でフォントを読み込んで使用するにはどうすればよいですか?

0 投票する
1 に答える
377 参照

python - 最速のレンダリングのためにPython Aggdrawでコンテナタイプを調整しますか?

元の質問:

Aggdraw ドキュメントで見つからない Python Aggdraw モジュールについて質問があります。画像オブジェクトにポリゴンをレンダリングし、入力座標を引数として受け取る「.polygon」コマンドを使用しています。

私の質問は、xy 座標を入れることができるシーケンス コンテナーのタイプ (リスト、タプル、ジェネレーター、itertools-generator、配列、numpy-array、deque など) を誰かが知っているか経験があるかどうか、そして最も重要なことに、どの入力タイプがAggdraw が画像を可能な限り高速にレンダリングするのを助けますか?

ドキュメントは、ポリゴンメソッドが取ることについてのみ言及しています:「Pythonシーケンス(x、y、x、y、…)」

私は、Aggdraw が他のシーケンス タイプよりもいくつかのシーケンス タイプに対して最適化されている、および/またはいくつかのシーケンス タイプを最初に変換する必要があるため、いくつかのタイプが他のタイプよりも高速になると考えています。では、誰かが理論上または経験上、Aggdraw の内部動作についてこれらの詳細を知っているのではないでしょうか?

私はいくつかの予備テストを行っており、すぐにさらに多くのことを行う予定ですが、テストを適切に行っていないか、Aggdraw を最適化するための追加の方法がある可能性があるため、1 つのオプションがより高速である理由の背後にある理論を知りたいと思っています。知らなかったレンダリング。

(ちなみに、これは些細な最適化のように思えるかもしれませんが、何万ものポリゴンをすばやくレンダリングし、それらをズームインおよびズームアウトできるようにすることが目標である場合はそうではありません。したがって、この質問については、他のレンダリングモジュールの提案は必要ありません(私のテストでは、とにかく Aggdraw が最速の 1 つであるように見えます。また、座標からピクセルへの変換など、他の最適化のボトルネックがあることも知っていますが、今のところ、Aggdraw の内部レンダリング速度の最終ステップにのみ焦点を当てています。)

他の人が Aggdraw についてどのような知識と経験を持っているか知りたいです。


勝者?いくつかの予備テスト

詳細が必要な場合は、ページのさらに下にある回答でいくつかの予備テストを実施し、結果を報告しました。主な調査結果は、float 座標を整数としてピクセル座標に丸め、それらを配列にすることが、Aggdraw でイメージまたはマップをレンダリングする最速の方法であり、比較可能な速度で 650% のスケールで信じられないほど高速なレンダリング スピードアップにつながることです。よく知られており、一般的に使用されている GIS ソフトウェアを使用します。残っているのは、座標変換とシェープファイルの読み込みを最適化するための迅速な方法を見つけることですが、これらは確かに困難な作業です。すべての調査結果については、ページのさらに下にある私の Answer 投稿をご覧ください。

独自のテストを行った場合、または他の有用な回答やコメントがある場合は、まだ興味があります. 誰かが知っているなら、私はまだボーナスの質問への答えに興味があります.


おまけの質問:

この質問に対する具体的な答えがわからない場合でも、実際の Aggdraw レンダリングがどのプログラミング言語で行われているかを知っていれば役立つかもしれません。Aggdraw モジュールは元の C++ Anti-Grain Geometry ライブラリの単なる Python バインディングであると読みましたが、それが実際に何を意味するのか完全にはわかりません。Aggdraw Python コマンドは、実際のレンダリングが C++ で C++ の速度で行われるように、「舞台裏」で C++ ライブラリにアクセスしてアクティブ化する方法に過ぎないということですか? もしそうなら、C++ は Python シーケンスを C++ シーケンスに変換する必要があり、最適化は、どの Python シーケンスが C++ シーケンスに最も速く変換できるかを見つけることであると推測します。それとも、Aggdraw モジュールは純粋な Python で書き直された元のライブラリにすぎないのでしょうか (したがって、C++ バージョンよりもはるかに低速です)。その場合、どの Python タイプがサポートされ、どのタイプのレンダリング作業がより高速であるか。enter code here

0 投票する
0 に答える
527 参照

python - Freetype をサポートする Aggdraw のインストール

Windows で Freetype テキスト レンダリングをサポートする Python 2,7 用の Aggdraw 描画モジュールをコンパイルしようとしています。問題は、本に従ってすべてを行っているにもかかわらず、フォントレンダラーがないというエラーメッセージが表示されることです。

それに関する以前の投稿を読んだので、次の手順を実行しました。

  1. Freetype 2.3.5 のプリコンパイル済みバージョンをダウンロード
  2. setup.py スクリプトの FREETYPE_ROOT 変数を freetype フォルダー パス ("C:/.../Desktop/freetype-2.3.5") にポイントしました。
  3. と入力してaggdrawをインストールしcd path/to/folder/of/setup.py、次にpython setup.py install

セットアップ スクリプトは、私が指定した freetype の場所を受け入れているようで、freetype が無効になっていることについて文句を言っていないので、Aggdraw Freetype サポートがインストールされていると思っていたでしょう。

64 ビット版の Aggdraw、コンパイル済み Freetype、コンパイル済み Aggdraw を Freetype へのリンクを使用して Mac で試しましたが、それでもテキストを描画できません。

テキストのレンダリングをテストするために使用するコードを次に示しますが、それは問題ではありません。

私は何を間違っていますか?Freetype へのリンクを使用してコンパイルできるのに、フォント レンダラーがないと不平を言うのはなぜですか?

ありがとう!

0 投票する
0 に答える
456 参照

python - aggdrawまたはPySDL2のいずれかを使用して円形グラデーションを作成するには?

一般的な問題

任意の半径の円形グラデーションを作成し、それを現在のマウス位置にマップする必要があります。このプロジェクトは主にOpenGLPySDL2を使用していますが、従来の理由からaggdrawも使用しています( Pillowラッピング PIL を使用)。大まかに言って、SDL2 は OpenGL やほとんどの UI との対話を実行しますが、aggdraw は予想通り、描画を実行します。

私は非常に初歩的な関数を書きました。マウスの動きとグラデーションの描画の間のレイテンシーがグラデーションの半径とともに劇的に増加することを除いて機能します (私のコードを参照してください。理由は明らかです)。

以下のコードは aggdraw を使用しています。aggdraw オブジェクトは、他の場所でnumpyを使用してバイト配列に変換され、OpenGL に渡されます。

私は SDL2 描画ライブラリを使用するソリューションにはオープンですが、それを使用したことは一度もありません。そのようなソリューションのナブのように扱われていただければ幸いです。;)


特定のコンテキストに関する注意事項

私が提供したコードは非常にまばらなので、礼儀として、これは私が約1年間書いてきた大きなモジュール(KLIBS)とのインターフェースであることを言及する必要があります。上記のモジュールは主に、ここでは関係のない多くのことを行いますが、以下の関数多くの社内コードにプラグインされます。残念ながら、このモジュールは (現在) ローカル コンテキスト用であるため、このモジュールのドキュメントをまだ作成していません。

ただし、この関数、文字通り、私のコードです。ライブラリの残りの部分は十分にテストされています。オーバーヘッドは、他の処理から 10 ミリ秒未満です。

画面のリフレッシュ レートよりも速くこれを実行できるに違いないと思います。最大30 ミリ秒の遅延許容値があり ます (プロジェクトのコンテキストは、視覚の認知科学における大学院の研究です)。これもハードウェアに依存することはわかっています。一般的に、私たちは 3 年以内の iMac について話している。

これはもっとうまくできると確信していますが、私は深みがありません。私は通常、Web 言語 (javascript/PHP/html/css) を使用します。

0 投票する
0 に答える
380 参照

python - 自己交差なしでaggdrawを使用してPythonで半ランダムな「落書き」を描画するアルゴリズムを作成する

私は認知心理学の実験を書いています。いくつかのプロパティを任意に制御して落書きのような図形を生成する必要があります。

  • Figure は決して自己交差できません
  • 閉じなければならない
  • 描画面/キャンバスの大部分を占める必要があります
  • 一連のポイントとしてエクスポートできる必要があります

さらに、その複雑さをある程度制御する必要があります。

これまでの私の一般的なアプローチは、これを行うことでした:

  1. キャンバスを四分円に分割し、各軸に沿って交点を生成します。これにより、図形がすべての象限を通過するようにすることで、図形が領域の大部分を占めることが保証されます。
  2. 各象限に乱数のポイントを生成します。
  3. 直線か曲線のどちらかをランダムに選び、点を順番につないでいきます

これは機能しますが、自己交差をまったく制御できません。これを制御できる方法が愚かで力強いアプローチであることはすでにわかっています。コードを含めましたが、SO には少し長いです。また、私はこの一般的なプロセスに特に執着しているわけではなく、自分で思いついたものです。私の論理に対するアドバイス/戦略/批判は大歓迎です.