スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーをはてなブックマークに追加

initWithContentsOfFileで生成した画像へのアクセスが遅い!?

Documentsフォルダに保存した画像を読み込む際、initWithContentsOfFileメソッドを使って一旦NsData型にして読み込む方法が一般的だ。

この方法でUIImageクラスの画像データを作成していたのだが、思わぬ問題に直面した。

ピクセルデータへのアクセスが異常に遅いのだ。

現在開発中のプロジェクトからコピペなので、そのままではビルドできないが、読み込み部分は大体このようなコードになると思う。


    NSData *backData = [[NSData alloc]initWithContentsOfFile:backDataPath];
    UIImage *wkBackImage = [[[UIImage alloc] initWithData:backData] autorelease];


そして、ピクセルデータへの参照はこんな感じ。


    // CGImageを取得する
    CGImageRef  backImageRef = backImage.CGImage;
   
    // データプロバイダを取得する
    CGDataProviderRef backDataProvider = CGImageGetDataProvider(backImageRef);
   
    // ビットマップデータを取得する
    CFDataRef   backDataRef = CGDataProviderCopyData(backDataProvider);
    UInt8*      backBuffer = (UInt8*)CFDataGetBytePtr(backDataRef);

    // ピクセルのポインタを取得する
    UInt8*  backPtr = backBuffer + (int)(divPoint.y-stampImage.size.height/2+y) * bytesPerRow_back + (int)((divPoint.x-stampImage.size.width/2)+x) * 4;
               
    // 色情報を取得する
    backR = *(backPtr + 2);
    backG = *(backPtr + 1);
    backB = *(backPtr + 0);

    CFRelease(backDataRef);


ここで、通常は瞬時に終わるはずのCGDataProviderCopyDataが0.3秒近くかかっていた。

これでは不味いということで、読み込み後に以下のコードを追加し、新しいイメージデータを作成してみた。すると、先ほどのメソッドも即座に完了し、遅くなる現象は改善された。


    UIGraphicsBeginImageContext(wkBackImage.size);
    [wkBackImage drawInRect:CGRectMake(0, 0, wkBackImage.size.width, wkBackImage.size.height)];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();


ただ、遅い理由は良く分かっていない・・・。




このエントリーをはてなブックマークに追加

コメント

非公開コメント

iPhoneアプリ紹介
パズルナビ for パズドラ 2016
最強のコンボツール!
colorization-large-icon.png

スクリーンショットを読み込むとコンボを自動計算してくれるパズドラの攻略アプリです。


AirRuler
(簡易距離計)

リモートで簡単に距離を測定できるアプリ!
colorization-large-icon.png

目標地点に向けてiPhoneを傾けるだけで簡単に距離を測定できます。ゴルフの距離測定機能付きパターの代わりにも使えます。


補色残像アート
~見えない色が見えてくる~
白黒なのにカラーに見えてしまう不思議な映像を体験しよう!
colorization-large-icon.png

補色残像という目の錯覚を利用して、白黒写真がカラーに見える不思議な映像を作成できます。作成した映像は、アニメGIFに変換したり、Twitterに投稿することもできます。


タイピング革命
フリック練習はタイピング革命で!ネットランキングで盛り上がろう!
icon-l-typing.jpg

オンラインランキング上のプレイを閲覧できるリプレイ機能付き!フリック入力とローマ字入力に完全対応したタイピング練習アプリです。初心者も安心のトレーニングモード付き。

★なんと!あのAppBank様に紹介して頂きました!!
typing-sale-led.gif


簡単3Dカメラ
iPhoneで手軽に3D写真を楽しもう!平行法/交差法/アナグリフ/グラグラ3Dに対応。
icon-l-3d.jpg

2枚の写真を撮影するだけで、裸眼で立体視できる3D写真が作成できます。85円でステレオ写真もアナグリフも楽しめるのは簡単3Dカメラだけ!

プロフィール

あらきんぐ☆

Author:あらきんぐ☆
はじめまして。あらきんぐです。
4月からiPhoneを購入し、その魅力に取り付かれて、気がついたらアプリ開発の道へ!仕事でプログラム開発をしていますが、基本「動けばOK!」な適当エンジニアです。適当でもアプリは作れる!っていう事を、ブログを通じて証明していきたと思います。

最新記事
最新コメント
最新トラックバック
カテゴリ
FC2カウンター
全記事表示リンク

全ての記事を表示する

Twitter
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
アクセスランキング
[ジャンルランキング]
コンピュータ
327位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
41位
アクセスランキングを見る>>
オススメ商品
iPhone/iPodと一般オーディオを繋ぐ貴重なアイテム!
アプライドオリジナルアイテム MBB...

アプライドオリジナルアイテム MBB...
価格:3,980円(税込、送料別)

開発中級者にオススメ!「こんなことができるんだ!」と驚かされる一冊
【送料無料】iPhone...

【送料無料】iPhone...
価格:1,500円(税込、送料別)

安い!シンプル!カッコいい!
希少なiPhone対応キーボード内蔵ケース
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。