FC2ブログ

2D描画方法メモ_4

Q.どのように私はタイル張りのイメージを描画するのですか?
A.あなたは現在のグラフィックスコンテキスト(CGContextRef)
にタイルイメージを描画する方法は2つあります。
その後、Quartz 2Dの関数CGContextDrawTiledImage、スケールとタイル
を呼び出し、それが現在のクリップ領域を埋めるように、与えられた画像。
メソッドcolorWithPatternImageを使用して、UIImageオブジェクトか
らUIColorオブジェクトを作成するにはUIKitの使用。次に、この色でタ
イルにしたい領域を塗りつぶす。
例については、QuartzDemoのサンプルコードを参照してください。

Q.どのように私はアプリケーションバンドルからイメージを読み込むのですか?
A.UIImageクラスのメソッド:imagedNamedを使用しています。たとえば、バンドルからmyImage.pngと
いうイメージをロードするためには、リスト2に示すコードを使用します。

リスト2は、アプリケーションバンドルからイメージを読み込んでいます。
UIImage*をmyImage= [UIImage imageWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@ "myImage.png" ofType:nilを]];
Quartzをイメージ(CGImageRefを)必要があれば、UIImageクラスのCGImageプロパティを使用して、
それを得ることができます。 UIImageによって提供されるメソッドの
詳細については、UIImageクラスのリファレンスを参照してください。例については
、QuartzDemoのサンプルコードを参照してください。

Q.どのように私は私のイメージから生のピクセルデータを取得できますか?
A.あなたのイメージから生のピクセルデータを取得するには:

画像の基礎となる石英の画像データを取得するUIImageクラスのCGImage
プロパティを使用します。
画像データをvendsオブジェクトを取得するために、Quartz 2Dの機能
CGImageGetDataProviderを呼び出します。
実際の画像データを含むCFDataRefオブジェクトを取得するQuartz
2Dは、関数CGDataProviderCopyDataを呼び出します。
次に、実際の画像データへのポインタを取得することができます。
UIImageオブジェクトから生のピクセルデータを取得する関数のリスト3を参照してください。
返された画像データは、ソースイメージが(;16ビットのARGB TIFFがあなたにARGB16データ
を与えるだろうソースが8ビットのRGBのJPEG画像ですので、もし、あなたが戻ってRGB8データ
を取得するだろう)作成されたとおりにフォーマットされています。
また、この情報は、CGImageRefオブジェクトを照会することができます。
CGImageリファレンス "のイメージに関する情報を取得する"と詳細については
、CGImageオブジェクトからピクセルデータの取得を参照してください。 姉妹サイトだよ! よかったらみてね!
スポンサーサイト

2D描画方法メモ_3

Q.どのように私は、指定されたスペースに収まるようにテキストのサイズを変更するのですか?
A.あなたが特定の四角形にテキストを描画するために使用できる、NSStringのいくつかの方法
(NSStringのUIKitの追加リファレンスを参照してください)があります。
また、特定のフォント、サイズ、および切り捨てのスタイルで描かれた場合は、文字列がどうなるか
のサイズを見つけることができます。
MoveMeサンプル·アプリケーションのsetupNextDisplayStringメソッドを参照してください。

Q.どのように私は線、円、多角形、ベジェパスを描くのですか?
A.Quartz 2Dは、ストローク、塗りつぶしている機能、および任意のパスにクリップを提供します。
パスは、線、円、多角形、ベジェパスが含まれています。
Quartz 2Dの描画に使用する方法については、Quartz 2DのプログラミングガイドとQuartzDemo
サンプルコードの"パス"を参照してください。

Q.どのように私は、グラデーションを描くのか?
A.勾配は、ある色から別のものに変化する塗りつぶしです。
Quartz 2Dは、あなたがグラデーション-CGGradientRefとCGShadingRefを描画させる2つの
不透明なデータ型を提供しています。
あなたは、軸方向または放射状のグラデーションを作成するためにこれらのいずれかを使用するこ
とができます。
軸方向の勾配は、(また、線形グラデーションと呼ばれる)は、2つ定義されたエンドポイントの
間の軸に沿って変化する。
軸に垂直な線上に存在するすべてのポイントは、同じ色の値を持っています。
対照的に、放射状のグラデーションは、通常、両方の円二つの定義両端間の軸に沿って放射状に
変化する塗りつぶしです。
彼らが中心点軸上に落ちる円周上に横たわる場合ポイントは、同じ色の値を共有しています。
勾配の円形部分の半径は、エンド円の半径によって定義されています。各中間円の半径は端から
端まで直線的に変化します。
グラデーションを作成するには、2つの方法があります。
最も簡単な方法は、CGGradientRef不透明な型を使用することです。
これを実行すると、Quartz 2Dは、自動的に、あなたは勾配計算機能を提供しないために勾配の
各ポイントで色を計算します。
グラデーションオブジェクトを作成するときは、位置と色の配列を提供しています。
石英は、グラデーションのエンドポイントとして、それぞれの場所に割り当てる色を使用して、
連続した位置の各セットの勾配を計算します。
色補間をより正確に制御するには、色を計算する関数を定義するためにCGFunctionRef不
透明な型を使用することができます。
次に、グラデーションを作成するには、CGShadingRef不透明タイプにあなたの関数を指定します。
グラデーションを作成すると例を参照してくださいする2つの方法の詳細については、Quartz 2Dの
プログラミングガイドの "グラデーション"をお読みください。またQuartzDemoのサンプルコードを参照してください。 姉妹サイトだよ! よかったらみてね!

2D描画方法メモ_2

この例では、とmyTextは、NSStringのインスタンスです。
NSStringの描画は左上隅に原点を前提としていることに注意してください。
追加の文字列の描画オプションについては、NSStringのUIKitの追加リファレンスを参照してください。
複数のフォントのオプションについては、UIFontクラスリファレンスを参照してください。

Q どのようにテキストのレイアウトを制御しますか?
A あなたが正確なテキストレイアウトが必要な場合は、
HTMLとCSSを使用してWebページを作成します。
次に、そのページを表示するには、UIWebViewクラスを使用します。

Q どのように描画座標系を変更しますか?
A あなたは、Quartz2Dを使用して、現在のグラフィックスコンテキストの現在の変換行列(
CTM)を操作することができます。
たとえば、CTM上で直接操作するようなCGContextScaleCTM、CGContextRotateCTM、
とCGContextTranslateCTMなどの機能を使用することができます。
詳細については、CGContextリファレンスを参照してください。
また、このようなCGAffineTransformMakeなどの関数を呼び出すことによって、
アフィン変換を作成することができます。次に、変換し、その特定の変換を必要なと
きに現在のグラフィックコンテキストに適用することを変更することができます。
詳細については、CGAffineTransformリファレンスを参照してください。 姉妹サイトだよ! よかったらみてね!

2D描画方法メモ

2D描画方法メモ

2D

Q.どのように私は2次元図面の現在のグラフィックスコンテキストを取得できますか?

A.UIViewオブジェクトのメソッドは、関数UIGraphicsGetCurrentContextを呼び
出すことによって、に描画することを計画している:あなたのdrawRectの実装内か
ら2D図面の現在のコンテキストを取得します。
これは、不透明なタイプ(CGContextRef)などの現在のグラフィックスコンテキ
ストを返します。
また、あなたが設定したいコンテキストを渡して、関数UIGraphicsPushContext
を呼び出すことによって現在のコンテキストを設定することができます。
次に、メソッドUIGraphicsPopContextを呼び出すことによって、以前のコンテキスト
を復元することができます。
UIGraphicsPushContextにすべての呼び出しでは、分散UIGraphicsPopContext
コールを提供する必要があります。
例については、QuartzDemoのサンプルコードを参照してください。

Q.画像がない場合、どのようにしてベクター画像を表示するのですか?

A.UIViewクラスは、画面上のグラフィックスを描画するためのビューを提供します。
まず最初にUIViewのサブクラスのために現在のグラフィックスコンテキスト
(CGContextRef)を取得する必要があります。
次に、現在のコンテキストに描画するQuartz 2Dは(も知られているコアグラフィックス)
によって提供される機能を使用しています。
状況によっては、これらのオプションのいずれかを選択して、直接のCALayerオブジェクト
に描画することができます:
1.サブクラスのCALayer。方法:次にレイヤーのdrawInContextの実装で描画を実行します。
2.inContext:メソッドdrawLayerを実装するデリゲートを作成します。
詳細については、iOSアプリ·プログラミング·ガイド "のグラフィックス描画"を参照してください。

Q.どうやってテキストを描画するのですか?

A.図面のテキストに取る方法では、ユーザーにテキストを表示する方法に依存しています。
最も簡単な方法は、UILabelクラスを使用することです。
より複雑なテキストレンダリングでは、UIKitは、現在のグラフィックスコンテキストの場所に
テキストをレンダリングできるようにするNSStringクラスへの追加を提供しています。
また、複数の属性でテキストを表示するための単一の属性のテキストとUIWebViewの大部分のため
のUITextViewがあります。
リスト1に示すように、デフォルトのサイズでシステムフォントを使用してテキストを描画する方法
:withFont:たとえば、drawAtPointを使用することができます。
姉妹サイトだよ! よかったらみてね!

スマホニュース 20120705

BookLiveが発売予定の電子書籍リーダーはこれだ

7月6日14時30分スタート! 文具王やだいたひかるさんらが語る「スマート文具サミット in ISOT 2012」

スペックコンピュータ、スタンドにもなるカード収納型iPhone 4S用ケース

KDDI、京都市内のバス停や地下鉄、セブン-イレブンに「au Wi-Fi SPOT」を拡大

日本マイクロソフト、Metroアプリ開発支援に本腰

業務用スマートデバイスのセキュリティ対策、その実態は

次世代スマートメーター向け高性能マイコン、24ビットA-Dコンバータも集積 姉妹サイトだよ! よかったらみてね!
twitter
twitter アカウント @drum_kuroneko 気軽にフォローしてください。
誰でも簡単に開発ができます!!
人気ナンバー1
自己紹介

yuutyan0205

プロガー:yuutyan0205
きままな自由人です。

たまにプログラミングを行っています。

仕事ください・・・

開発者アプリ一覧 気になったらダウンロードしてください。
開発環境おすすめ
カレンダー
06 | 2012/07 | 08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
最新記事
月別アーカイブ
カテゴリ
アクセスランキング
[ジャンルランキング]
コンピュータ
1074位
アクセスランキングを見る>>

[サブジャンルランキング]
マック
53位
アクセスランキングを見る>>
訪問者数
現在の訪問者数
現在の閲覧者数:
全記事表示リンク

全ての記事を表示する

相互リンク希望の方とご質問ある方ご連絡ください。

名前:
メール:
件名:
本文: