問題タブ [uiimagepngrepresentation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - UIImagePNGRepresentation メモリリーク
コードで以下の行を使用しました
メモリ不足が原因でアプリがクラッシュします。VM トラッカー/割り当てを使用すると、ヒープの増加が表示されます。コードを分析しました。上記のラインで 100% のリークが表示されます。メソッドはUIImagePNGRepresentation
より多くのメモリ割り当てを必要としますか? 私が知っているように、自動解放されたオブジェクトを返します。
私が何か間違ったことをしている場合はお知らせください。
編集:リーク計器にリークが表示されていません。割り当て手段を使用してから、特定の機能のヒープショットを撮りました。ヒープの成長を示しています。アプリをさらに使用した後のアプリのクラッシュの原因だと思います。「拡張詳細」を使用したヒープショットでは、上記の行に100%表示されます
編集:これが役立つことを願っています
上記のコードでfixImageOrientation
は、UIImage 用に記述されたカテゴリです。
iphone - UIImagePickerControllerOriginalImageと元のアセットデータ
私が開発しているアプリでは、ユーザーがフォトアルバムから選択した画像を使用しています。その写真の高解像度バージョンをサーバーにアップロードする必要があります。
imagePickerControllerを使用していますが、2つのオプションがあると判断しました
- UIImagePickerControllerOriginalImageのUIImageを使用します
- UIImagePickerControllerReferenceURLとALAssetsLibraryassetForURLを使用して元のアセットを取得します(ユーザーに現在の場所を使用するように求めるので、これは好きではありませんが、必要ありません)
私の質問は...最初のオプションと2番目のオプションを使用した場合、画像の品質に違いはありますか?
ios - iOS 5.1 以降でのみ UIImagePNGRepresentation 内の png_error
UIImagePNGRepresentation() が時々 png_error 呼び出しを引き起こす奇妙なクラッシュが発生しています。社内のどのデバイスでもこのエラーを再現できませんでした。
以下は、HockeyApp クラッシュ ログの 1 つからのスタック トレースの例です。
このクラッシュ ログは、iOS 5.1 以降を実行しているデバイスでのみ確認されています。実際、iOS 6 からもクラッシュが発生しているため、このバグはまだ修正されていません。
アプリで表示できる 16,000 を超える画像をダウンロードするテスト アプリを作成しましたが、それらすべてを問題なくダウンロードしてディスクに保存することができました。この要旨へのいくつかの回答は、この問題が破損した画像によって引き起こされた可能性があることを示唆していますが、16,000 を超える画像をダウンロードし、一度も問題が発生したことがないことを考えると、これは事実ではないと思います.
私が取り組んでいる最新の仮説は、ダウンロード中のデータが何らかの形で破損しているため、破損した UIImage が作成されているというものです。ただし、破損した UIImage を作成する試みはすべて失敗しました。Apple は UIImage の堅牢なコンストラクターを作成したようで、渡したものは無効であり、コンストラクターから nil が返されます。
他の誰かが UIImagePNGRepresentation からこのようなことを経験しましたか?
iphone - ABPersonSetImageData は、着信通話用に連絡先のフル サイズの画像を設定しません
iPhone アドレス帳に新しい連絡先のサムネイル画像を設定することはできますが、その連絡先が私の電話に電話をかけると、電話は全画面バージョンを表示しません。代わりに、画面の上部にサムネイル バージョンを表示するだけで、携帯電話のスクリーン セーバーはバックグラウンドで表示されます。私が忘れている特別なことはありますか (以下のコード スニペットを参照)。
また、連絡先の以前の画像を保存できないことを示す以前の投稿を見つけましたが、それでも問題は解決しません...
前もって感謝します!
ios - UIImagePNGRepresentationよりも速くPNGをエンコードする方法はありますか?
のタイルの束を生成していCATiledLayer
ます。iPhone4Sで4レベルの詳細を備えた256x256で120個のタイルを生成するのに約11秒かかります。画像自体は2048x2048の範囲内に収まります。
私のボトルネックはUIImagePNGRepresentation
です。256 x 256の画像を生成するのに約0.10〜0.15秒かかります。
異なるバックグラウンドキューで複数のタイルを生成しようとしましたが、これでは約9〜10秒に短縮されます。
また、次のようなコードでImageIOフレームワークを使用してみました。
これにより小さいPNGファイルが生成されますが(win!)、約13秒かかり、以前より2秒長くなります。
PNG画像をCGImage
より高速にエンコードする方法はありますか?おそらく、 libjpeg-turboのNEON
ようにARM拡張機能(iPhone 3GS +)を利用するライブラリですか?
スペースをあまりとらないタイルを保存するために、PNGよりも優れたフォーマットはおそらくありますか?
私が思いついた唯一の実行可能なオプションは、タイルサイズを512 x 512に増やすことです。これにより、エンコード時間が半分に短縮されます。しかし、それが私のスクロールビューに何をするかはわかりません。このアプリはiPad2+用で、iOS 6のみをサポートします(ベースラインとしてiPhone 4Sを使用)。
ios - UIImagePngrepresentationまたはUIImageJpegRepresentationを使用せずにUIImageをNSDataに変換します
またはを使用せずに変換UIImage
する必要があります。photolibからの画像の場合、ここで説明するように、assetlibメソッドを使用できます。ALAssetsLibraryとALAssetを使用して、画像をNSDataとして取り出しますが、キャプチャされた画像の場合、assset urlがないため、変換する必要があります。exifデータを含むバイトに直接、これをどのように達成できますか?助けてくださいNSData
UIImagePngRepresentation
UIImageJpegRepresentation
UIImage
iphone - UIImagePNGRepresentation(UIImage)がlibpngエラーをスローする:IDATがファイルに書き込まれていない
ブラウザからサムネイルを保存するアプリケーションを作成しています。このファイルを含むディレクトリを他のディレクトリに移動する傾向があるまで、すべてが正常に機能しています。このエラーが発生します:
ImageIO: CGImageRead_mapData 'open' failed '/Users/anuj/Library/Application Support/iPhone Simulator/6.1/Applications/8CD8EB07-6D62-4284-B425-087E821098BC/Library/Caches/PausedVideos/Old School vs. New School/Thumbnail'エラー = 2 (そのようなファイルまたはディレクトリはありません) ImageIO: CGImageRead_mapData 'open' failed '/Users/anuj/Library/Application Support/iPhone Simulator/6.1/Applications/8CD8EB07-6D62-4284-B425-087E821098BC/Library/Caches/PausedVideos /Old School vs. New School/Thumbnail' エラー = 2 (そのようなファイルまたはディレクトリはありません) libpng エラー: ファイルに IDAT が書き込まれていません
私が使用しているコードは次のとおりです。
こちらのリンクも参照しましたが、何も変わりません。
ios - UIImageJPEGRepresentationとUIImagePNGRepresentationはどちらも遅い
ここでは、静的メソッドを持つUIImageのカテゴリごとに画像をバイナリデータに変換しています。私の問題は、UIImageJPEGRepresentationとUIImagePNGRepresentationが6秒まで非常に遅いことです。1秒の解決策が必要です。誰でも助けてくれますか。ここでは、画像のサイズが10kbs以下になるまで、画像をカテゴリメソッドに渡します。
NSData * data; 何かと等しくなければなりません
iphone - Guard Malloc が有効な場合の UIImagePNGRepresentation での EXC_BAD_ACCESS エラー
Guard Mallocを有効にするとUIImagePNGRepresentation() で EXC_BAD_ACCESS エラーが発生し、無効にすると画像の変換中にエラーが発生しません。私は解決策をグーグルで調べましたが、実用的な解決策が見つかりません。以下はコードです。
これは phonegap プラグイン コードの一部であり、提案は非常に役立ちます。ありがとう。
android - iPadでAndroidで作成されたPNG画像を開きますか?
署名を描画して PNG に変換し、Base64 形式でサーバーにアップロードできるアプリケーションを作成しています。
このイメージは、iPad と Android タブレットの両方を使用してダウンロードできるはずです。
Android タブレットは、他のタブレットや他の iPad から画像をダウンロードして表示することができますが、生の画像データを使用可能な画像形式に変換しようとすると、何らかの理由で iPad が詰まることはありませんか?
iPad でスローされる例外は次のとおりです。
PNG 画像を作成して Base64 に変換する Android コードは次のとおりです。
エラーをスローしているObjective-Cコードは次のとおりです。
signatureImage は、Base64 でデコードされた画像データを含む UIImage です。
Base64 で編集された画像をデコードして画像ファイルとして保存することで、その画像が正しいことを確認しました (正常に動作します)。
問題を引き起こしているのは「UIImagePNGRepresentation」呼び出しですが、その理由はわかりません!
アイデアはありますか?
編集 Androidで署名ファイルを使用したいときは、次のように呼び出します。
iPad は画像を使用する前に何らかの方法で画像を解凍またはデコードする必要があるのでしょうか?