- 追加された行はこの色です。
- 削除された行はこの色です。
*Cocoaで画像読み込みと表示 [#zb088e68]
*第4回目 Cocoaで画像読み込みと表示 [#zb088e68]
CocoaでPNGファイルを読み込んで画面に表示します。
他にはJPGファイルも読み込んで表示ができます。
#ref(picture_draw01.png,,,100%)
まずXcodeを起動してメニューの「ファイル」-「新規プロジェクト」を選択する。
そしてCocoa Applicationを選んで「次へ」ボタンを押す。
#ref(picture_draw02.png,,,100%)
プロジェクト名を決めて「完了」ボタンを押す。
今回はpicture_drawというプロジェクト名にした。
#ref(picture_draw03.png,,,100%)
pictute_drawのプロジェクトのフォルダに表示したいpngファイルをコピーする。
今回はsample.pngを使用。
#ref(picture_draw04.png,,,100%)
ファイルとグループのResourcesを右クリックしてメニューを出し「追加」-「既存のファイル」を選ぶ。
#ref(picture_draw05.png,,,100%)
sample.pngを選んで「追加」ボタンを押す。
**プログラム作成 [#p543fa08]
以下のプログラムを入力する。
***PictureView.h [#k1490099]
#import <Cocoa/Cocoa.h>
@interface PictureView : NSImageView {
}
@end
***PictureView.m [#la3f6c1d]
#import "PictureView.h"
@implementation PictureView
-(id)initWithFrame: (NSRect) frameRect
{
NSBundle *thisBundle;
NSString *filepath;
NSImage *img;
[ super initWithFrame: frameRect ];
[ self setImageFrameStyle: NSImageFrameGrayBezel ];
thisBundle = [ NSBundle mainBundle ];
filepath = [ thisBundle pathForResource:@"sample" ofType:@"png" ];
img = [ [ NSImage alloc ] initWithContentsOfFile: filepath ];
[ self setImage: img ];
return self;
}
@end
NSBundleはリソースに登録したファイルを管理するクラスのようです。
NSImageは画像の管理をするクラスのようです。
はっきり言って何をしているか良くわかりませんが
NSBundleでPNGファイルの場所を調べてNSImageに読み込んでいると言うことのようです。
#ref(picture_draw06.png,,,100%)
グループとファイルのOther sourcesを右クリックして「追加」-「既存のファイル」を選びます。
#ref(picture_draw07.png,,,100%)
PictureView.h、PictureView.mを選んで「追加」ボタンを押します。
#ref(picture_draw08.png,,,100%)
何も変更せずに「追加」ボタンを押します。
**Interface Builderでの作業 [#y8ea29ab]
#ref(picture_draw09.png,,,100%)
XcodeのファイルとグループにあるMainMenu.nibをダブルクリックする。
するとInterface Builderが起動する。
#ref(picture_draw10.png,,,100%)
ライブラリウインドウのViews & CellsにあるCustom Viewを選ぶ。
#ref(picture_draw11.png,,,100%)
作成中のWindowに上記で選んだCustom Viewをドラッグアンドドロップする。
またCustom Viewの大きさを調整する。
#ref(picture_draw12.png,,,100%)
Class identityを先ほど作成したPictureViewに変更する。
**実行結果 [#if370169]
#ref(picture_draw13.png,,,100%)
[[前に戻る>Mac]]