問題タブ [quartz-graphics]

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 に答える
3274 参照

iphone - 移動時の CALayer コンテンツの再描画を無効にする (iphone)

私は多数の CALayers (~1000) を持つ UIView を持っています。それぞれのコンテンツには小さな画像があります。この UIView はスクロールビューのサブビューです (実際には、スクロールビューのサブビューである別のビューのサブビューです)。これは、最初は比較的速く描画されます (数秒)。ただし、スクロールビューでスクロールすると、フレームレートが非常に低くなります。

スクロールするたびに各 CALayer の内容を再描画しようとしていますか? これを無効にする方法はありますか?何か他のことが起こっていますか?

注: UIView で clearsContextBeforeDrawing を NOo に設定しました。

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

cocoa - NSBezierPath/線交差/平坦化

現在、jruby/java2dグラフ描画/レイアウトアプリケーションをmacruby/cocoaに移植しています。したがって、開いているNSBezierPathと閉じているNSBezierPathの交点を取得する必要があります。

java2dでは、次のトリックを使用しました。両方のパスを平坦化し、各セグメントに対して単純な線交差テストを実行しました。

では、NSBezierPathを一連の直線に変換する簡単な方法はありますか?

私の現在のアルゴリズムは、containsPointがtrueであるNSPointが見つかるまで、(バイナリ検索の方法で)行をたどるだけです。ただし、直線に対してのみ機能します。java2dで実装したものは、カーブしたパスでも機能しました。

グラフ

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

iphone - Quartz と CGLayers を使用して背景にスプライトを描画するにはどうすればよいですか?

私はQuartzの初心者であり、Appleが言うことは非常に簡単で簡単であることを理解するために戦っています.

2 つの CGLayer を作成しました。1 つは固定背景用で、もう 1 つはスプライト用です。このスプライトを動かしたい。

バックグラウンド コンテキストとスプライト コンテキストの両方が画面外に描画されるので、両方を画面に表示したいと考えています。

それを行うには、これが正しい方法かどうかはわかりませんが、次のことを行いました。

  1. UIImageView を作成しました
  2. を使用してレイヤーのコンテンツをキャプチャしました

    resultsImage = UIGraphicsGetImageFromCurrentImageContext();
    myView.image = resultsImage;

これにより、両方の石英層の内容が画面に表示されます。

今、私は2つの問題を抱えています:

  1. このアプローチは地獄のように遅いです
  2. レイヤーを移動すると、前述のコードを繰り返す必要があり、これを実行しても、レイヤーは移動しません!!!!

ですから、iPhone の専門家の皆さん、クオーツを使ってこれを行う別の方法があれば教えてください。

助けてくれてありがとう!

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

objective-c - ブラウザー プラグインが WebView 実装で読み込まれない

Webページを表示するCocoaアプリを作成しようとしています。この Web ページには、Safari で再生および動作するバックグラウンドでクオーツ コンポジションが埋め込まれていますが、私の Cocoa アプリケーションでは表示されます (代わりに、不足しているプラ​​グイン アイコンがバックグラウンドで表示されるだけです)。

奇妙なことは、私がテストしていた別のコンピューターで動作することです。これを引き起こす可能性のあるフレームワークまたはプラグインがどこかにありませんか?

別の注意: プラグインは動作していないようです。たとえば、WebView が youtube.com を表示すると、Flash プラグインがインストールされていないと表示されるため、ビデオを再生できません。繰り返しますが、同じコードは別のコンピューターでは機能しますが、このコンピューターでは機能しません。

ありがとう!どんな助けでも大歓迎です!

0 投票する
3 に答える
19292 参照

iphone - CGContextの保存と復元

CGContextを保存および復元して、2回目の大量の描画計算を回避しようとすると、エラーが発生します<Error>: CGGStackRestore: gstack underflow

私は何が間違っているのですか?これを行う正しい方法は何ですか?

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

iphone - iPhoneアプリケーションの画面を赤く染める

iPhoneアプリケーションのすべての画面に赤い色合いを付けようとしています。ビットマップを試してみたところ、Multiply(kCGBlendModeMultiply)を使用して画面イメージに濃い赤色を合成することで、必要な効果が得られることがわかりました。

では、問題は、iPhoneでこれをリアルタイムで効率的に行う方法です。

ばかげた方法の1つは、現在の画面のビットマップを取得し、そのビットマップに合成してから、合成されたビットマップを画面に書き戻すことです。これはほぼ間違いなく遅すぎるようです。さらに、色合いを更新できるように、画面の一部がいつ再描画されたかを知る方法が必要です。

赤、半透明、フルスクリーンのUIViewをすべての上に置くことで、ほぼ必要な効果を得ることができます。それは私の側のさらなる介入の範囲内ですべてを赤く染めますが、その効果はコンポジットからの結果よりもはるかに「濁っています」。

では、半透明の赤いUIViewと同じように、アプリ上で赤を自動的に合成するために使用できるメカニズムを知っているウィザードはいますか?

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

objective-c - CGEventCreateMouseEvent()を使用してダブルクリックを実行する

次のコードを使用して、マウスのクリックをシミュレートしています。

基本的に同じコードを使用して、以下を変更することでコントロールクリック(右クリック)を実行できます。

kCGEventLeftMouseDown

kCGEventLeftMouseUp

kCGMouseButtonLeft

それぞれの「正しい」イベントに。関数は次のようになります。

しかし、ダブルクリックはどうですか?2回の左クリックを送信し、PostMouseEvent()を2回続けて呼び出してみましたが、うまくいきませんでした。ダブルクリックをどのように実行しますか?

ありがとう!

0 投票する
5 に答える
13903 参照

iphone - UIImageWriteToSavedPhotosAlbum save as PNG with transparency?

I'm using UIImageWriteToSavedPhotosAlbum to save a UIImage to the user's photo album. The problem is that the image doesn't have transparency and is a JPG. I've got the pixel data set correctly to have transparency, but there doesn't seem to be a way to save in a transparency-supported format. Ideas?

EDIT: There is no way to accomplish this, however there are other ways to deliver PNG images to the user. One of which is to save the image in the Documents directory (as detailed below). Once you've done that, you can email it, save it in a database, etc. You just can't get it into the photo album (for now) unless it is a lossy non-transparent JPG.

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

iphone - iPhoneカメラからの画像をポストプロダクションすることは不可能ですか?

iPhone 3GS では、カメラがキャプチャした画像は 2048x1536 ピクセルです。私の計算が正しければ、この画像を CGLayer で開くと 12.5 MB を消費します。

Springboard は、12 mb を超えるアプリケーションを終了します (少なくともこれは私に起こります)。

この画像を CGContextDrawLayer のような関数で操作すると、少なくともさらに 12 MB 消費されます。

これは24MBです。

プログラムを終了させずに iPhone でそのような画像を操作するにはどうすればよいでしょうか?

寸法を縮小せずに、カメラで撮影した画像のフットプリントを縮小する方法はありますか?

手がかりはありますか?ありがとう。

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

iphone - ダブルタップズームで注釈ビューが消える問題

iPhoneのMapKitの注釈ビューで問題が発生しました。マップ上にカスタム注釈ビューを描画することができます-問題ありません。ドラッグしたりズームしたりした後でも、なんとか再描画できます。ただし、再描画が機能しない場合があります。たとえば、ダブルタップズームがあります。

マップ上の特定の場所にいくつかの長方形を描画するコードを添付し、2本の指のジェスチャーを使用してズームすると、すべてが正常に機能します(つまり、長方形が再描画されます)。ただし、ダブルタップすると長方形が消えます。さらに奇妙なことに、すべてのメソッドが必要な順序で呼び出され、最終的にはdrawRectも呼び出されますが、長方形は描画されません。

コードは次のとおりです。自分で試してみてください。2本指のズームは機能しますが、ダブルタップのズームは機能しません。

PlaygroundViewController.h

PlaygroundViewController.m

Territory.h

Territory.m

TerritoryView.h

TerritoryView.m

どんな助けでも大歓迎です。これがzip形式のプロジェクトです:リンク