忍者ブログ
Flex,Java,Html など、調べた事のメモ帳です。 間違ってたらゴメンなさい。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

iPhoneで撮った写真は、撮った時のiPhoneの向きを画像に埋め込んで、
表示するときに勝手に向きを補正して表示してくれているようだ。

これはWindowsに画像を取り込んだ後も効いているようで、
表示的には正しい向きで表示されているんだんけど、実体ファイルは向きが違うため、アップロードすると回転されて(元の向きで)表示されてしまう。

これ、結構やっかいで、Windows上では正しい向きで表示されているため、アップロードしてみないと向きが変わるかどうか判断できない。

安直だけど解決策(Windows上で、ペイント使って操作してます

1)アップロードする画像を表示したい向きに編集する。
2)画像を「名前を付けて保存」から「ビットマップ(24ビット)」で保存
3)ビットマップにした画像を再度「名前を付けて保存」から「JPEG」で保存

 iOS上でOpenGLESアプリケーションを構築する場合にXcodeが自動生成してくれるテンプレートを利用すると思いますが Xcode 3.2.5からOpenGLESアプリケーションのテンプレートが大幅に変更されました
 特にこれからプログラミング入門を使ってプログラミングを行う方は、Xcode 3.2.4以前を前提にした本に書かれた内容と(3.2.5以降の)Xcodeが吐き出すテンプレートの内容が大幅に異なるので要注意です。

1)OpenGLES1.0固定で動作させる方法

 テンプレートでは2.0で初期化を試して失敗したら1.0で初期化するようになっています。Xcode 3.2.5(iOS SDK4.x?)より前ではEAGLView.mの-(id)initWithCoder:(NSCoder*)coderで初期化していましたが、3.2.5からは<プロジェクト名>ViewController.mの-(void)awakeFromNibで同様の初期化を行っているようです。
 細かい記述は異なりますが、2.0で初期化して失敗したら1.0で初期化するという流れは同じなので簡単に修正できると思います。
 ヘッダーファイルの構成も大きく変わっているようで、以前はOpenGLES2.0用のヘッダーファイルを読み込ませないようにES2Renderer.hの#importディレクティブを削除したりしていましたが、現在はOpenGLES/ES2/gl.hやOpenGLES/ES2/glext.hのimportディレクティブを単純に削除するとコンパイルエラーが出てしまいます。ちゃんと解析すれば必要なヘッダーファイルだけ読み込ませるようにできると思いますが、そこに時間をかけるのも勿体ないので私はこのまま使おうかと思っています。

2)描画ロジックの記述場所

 以前のバージョンでは、EAGLView.mの-(void)renderでしたが、最新版では、<プロジェクト名>ViewController.mの-(void)drawFrameになっています。またこのファイルの中で、OpenGLES 1.0/2.0を判断してそれぞれの描画ロジックが動作する仕組みになっています。以前のものは(レンダー)クラスが分かれていたと思います。








ブログランキング
にほんブログ村 IT技術ブログ IT技術メモへ
 
カレンダー
08 2017/09 10
S M T W T F S
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
人気ブログランキング
ブログランキング ブログランキング
最新CM
最新TB
ブログ内検索
PR
ATOM  
ATOM 
RSS  
RSS 
Copyright ©   プログラムメモ   All Rights Reserved
Design by MMIT  Powered by NINJA TOOLS
忍者ブログ [PR]