問題タブ [cairo]
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.
python - カイロで大きな画像
cairo で非常に大きな画像 (>50.000² ピクセル) をレンダリングする必要があります。メモリを使い果たすことなくこれを行うには、画像の一部 (<1.000² ピクセル) を次々にレンダリングし、後でそれらをマージします。
- 1000x1000 サーフェスを作成
- 現在のパーツの位置に移動
- 画像を描画する (pycairo を使用して描画命令を呼び出す)
- 画像をレンダリング/ファイルに保存 (cairo_surface_write_to_png)
- 次の部分で繰り返します
cairos クリッピング アルゴリズムは私のものよりも高速であるため、ステップ 3 では、画像の一部しか表示されていない場合でも、画像全体を描画します。CPU のほとんどは、ステップ 3 (by python) で使用されます。メモリの大部分は、ステップ 4 (カイロによる) で使用されます。
物事をスピードアップする方法はありますか?このようなもの?
- 1000x1000 サーフェスを作成
- イメージを描く
- すべてを現在のパーツの位置に移動
- 画像をレンダリング/ファイルに保存
- 次の部分で 3 を繰り返します
また
- 50000x50000 サーフェスを作成
- イメージを描く
- 画像の現在の部分のみをファイルにレンダリング/保存
- 次の部分で 3 を繰り返します
python - ズーム可能な UI を簡単に作成するための Python ライブラリはありますか?
私の次の仕事は、リストやプロパティ フォームを使用する代わりに、ズーム可能な 2 次元の平面またはキャンバス上で整理されたときに最もよく理解されるデータの操作に重点を置いています。
ライブラリは、OpenGL、GTK+、または Cairo に基づくことができます。それは私ができるようにする必要があります:
- ベクトル形状とテキストからウィジェットを構築します (おそらく SVG ベースでさえありますか?)
- これらのウィジェットを 2D 平面に配置します
- ウィジェット関連のイベントをキャッチ
- ウィジェットを深くズームして追加データを表示する
- ウィジェットをツリーに配置する
- ウィジェットを流動的にアニメーション化する
何らかのデータバインディングやモデル/ビューの概念を考慮しても問題ありません。
python - PyCairoをPyOpenGLサーフェスにレンダリングしますか?
私は最近pycairoで遊び始めました-これをpyopenglの表面にレンダリングするのは簡単ですか(たとえば、立方体の側面にありますか?)...私のopenglは本当に存在しないので、最善の方法がわかりませんこれについて行きます。
graphics - カイロパスのブール演算?
Union、Difference、Intersection などのブール演算を使用して 2 つのパスを結合することにより、カイロでパスを構築する方法はありますか? Cairo を使用してレンダリングを行うベクター グラフィックス アプリケーションに取り組んでおり、ユーザーがこの方法でパスを結合できるようにしたいと考えていますが、Cairo でそれを行う方法が見つかりません。
python - Gtk+ で画像を描画する最速の方法は何ですか?
gtk.DrawingArea に描画して頻繁に更新するイメージ/pixbuf があるため、ブリッティング操作は高速である必要があります。簡単な方法でそれを行う:
ただし、pixbuf がディスプレイのカラー形式ではないことが原因で、パフォーマンスが非常に低下する可能性があります。
Cairo でも 24/32 ビット フォーマットに限定されているようで、16 ビット フォーマットがないため、成功しませんでした (FORMAT_RGB16_565 はサポートされておらず、非推奨です)。
Gtk+ ですばやく絵を描くための代替手段はありますか?
c - 一連のカイロ キャンバスから c でビデオを簡単に作成する方法は?
私は大学向けにC言語でいくつかの物理シミュレーションを書いていますが、今では一連の数百のpngを出力し、それを高速で見ています...単純なロスレスコーデックライブラリを使用して、それらをC言語のビデオにマージする方法はありますか? ?
PS私はcairoグラフィックスを使用しており、一般的なグラフィックスプログラミングの経験はほとんどありません
python - librsvgPythonバインディングを使用してsvgイメージファイルのサイズを変更する方法
svgファイルをラスター化するときに、結果のpngファイルの幅と高さを設定できるようにしたいと思います。次のコードでは、キャンバスのみが目的の幅と高さに設定され、元のsvgファイルのサイズを持つ実際の画像コンテンツが(500、600)キャンバスの左上隅にレンダリングされます。
画像コンテンツをカイロキャンバスと同じサイズにするにはどうすればよいですか?私は試した
しかし得た
また、librsvg pythonバインディングのドキュメントは非常にまれで、cairoサイトにあるランダムなコードスニペットのみです。
c++ - Cairo グラフィックスを MFC で動作させるための小さな例は?
従来の MFC アプリがいくつかあり、Cairo 描画エンジンを使用してチャートやグラフを追加したいと考えています。
それを機能させる方法の小さな例を探しています。基本的に、PNG または GIF ファイルを作成したら、それを MFC CView ウィンドウに表示するにはどうすればよいですか?
私のgoogle-fuは良い手がかりを見つけていません。
python - osxにpycairoをインストールするにはどうすればいいですか?
OSXの下にpycairo ( cairoグラフィックライブラリのPythonバインディング)をインストールしようとしています。
私はから始めました
そして得た:
そこで、cairoのサイトにアクセスして、cairoの最新パッケージ(1.8.8)と、pixmanと呼ばれるものの最新パッケージ(両方のソースパッケージ-osxバイナリが見つかりませんでした)をダウンロードしました。
それぞれ独自のディレクトリにある両方を解凍しました。pixmanの場合、通常./configure ; make ; sudo make install
はcairoを検索するだけで機能し、。/ configureは機能しているように見えましたが、makeは次のコマンドで失敗しました。
私は何が間違っているのですか?
そして、なぜ私はソフトウェアライブラリを「正しく機能する」OSで動作させるためにそれほど苦労しなければならないのですか?ダーウィンがLinuxに似ていないのはなぜですか?