iPhoneアプリ開発 -同じ画像を2度以上画像処理した際に起こるエラーの対処-
起きた現象
(1) UIImageのデータを元にピクセルの値を色々といじって画像処理。
(2) 同じUIImageで再度、画像処理しようとするとEXC_BAD_ACCESS
上記のように1度画像加工した画像に対して、再度画像処理をしようとすると、EXC_BAD_ACCESSが発生します。
対処内容
元々のコードは以下の様な感じです。
CGDataProviderRef dataProvider = CGImageGetDataProvider([image CGImage]); CFDataRef data = CGDataProviderCopyData(dataProvider); int *originalPixels = (int*)CFDataGetBytePtr(data); //(1) //画像処理// [originalPixelsの値をいじりまくり] //以下略 //画像処理した値から再度UIImageを合成 //使い終わったものはrelease
どうも(1)がダメっぽい。
以下のようにMutableにすれば問題ないようです。
CFDataRef data = CGDataProviderCopyData(dataProvider); CFMutableDataRef mutableData = CFDataCreateMutableCopy(0, 0, data); int *originalPixels = (int*)CFDataGetMutableBytePtr(mutableData);
※mutableDataは使い終わったらCFReleaseする必要があります。
参考
広告
関連記事
-
iPhoneアプリ開発 芳名帳アプリ作成(2) -記帳画面作成-
* 今までの流れ - * 画面構成 今回の芳名帳アプリは以下の画面で構成しています。 -
-
WordPressプラグイン「SyntaxHighlighter Evolved」が動かない!?
* 起きたこと ある時から、本ブログのコードの部分が「SyntaxHighlighter」で表示され
-
github-flowを使っての開発(3) -1つのプロジェクトを複数人で開発-
今まで2回ほどgithub-flowをもとにした開発の流れを書きました。 今回は、複数人で開発をする
-
Jenkins + iPhoneアプリ(2) -ローカルリポジトリにあるデータからipaファイル生成-
* これまで - * 最終目標 -(開発者)git(リモートリポジトリ)にソースをコミット
-
カレログ騒動で考えたライフログのこと
今回、カレログというAndroidアプリが話題になり騒動になってます。 というわけで、ふとカレログ
-
Jenkins + DeployGate(1) -DeployGateでAndroidアプリ開発-
TestFlight for Androidが発表されて1ヶ月ぐらいたちますが、音沙汰がありません。
-
CakePHP1.3でテストコード(1) -モデルのテスト-
CakePHP1.3ではSimpleTestを用いてテストコードを書きます。 ※CakePHP2系で
-
iPhoneアプリ開発 −遷移先のViewControllerに値を引き継ぎたい−
例えば、トップページに複数個のボタンがあって、「A」と「B」というボタンを押下した際に、同じView
-
iPhoneアプリ開発 芳名帳アプリ作成(1) -最初の一歩-
* 作るアプリ 結婚式や2次会で「自分の名前を書く」芳名帳 これをアプリで作ってみます。
-
iPhoneアプリ開発 −UITabControllerの利用−
* やりたいこと 上にあるように下部にあるタブをタッチしたら別のページを呼び出す。 *