大きな画像はメモリに読み込むには大きすぎますが、大きな画像の中のサブセットにしか興味がありません。このピクセルのサブセットのみをメモリにデコードすることは可能ですか?私は今、私がやっている... Androidの中で、これはBitmapRegionDecoderは私がCGDataProviderCreateSequentialを発見したios画像の一部をデコードする
のようなものですが、それは、コンストラクタの生のピクセルを必要と呼ばれる正確に行うためのAPIでクラスがあることを
を知っていますこのような何か:あなたはCGImageSourceCreateWithData()
(またはURL何でも)を作成する場合、これはうまくいくかもしれない
UIImage* srcImage = ...;
CFDataRef cgImgDataRef = CGDataProviderCopyData(CGImageGetDataProvider(srcImage.CGImage));//After this call, all pixels are decoded into memory and the app crashes
char* imageData = (char*)CFDataGetBytePtr(cgImgDataRef);
現在の知恵では、これを行う方法は、画像をタイルにスライスし、適切なズームレベルで現在表示されているタイルのみを遅延ロードすることです。この画像は正確にどのくらいの大きさ(ピクセルの大きさ)ですか? – warrenm
およそ4096x3072ですが、私は大きな画像のタイルを開いているgl ESアプリに直接ロードしたいと思っています。だから、私は必要なピクセルを抽出し、私のサブピクセルデータとのglTexImage2D(...)を呼び出す必要があります – AkademiksQc
サブ画像のサイズは、あなたは常に同じ抽出しているのですか、またはそれは異なりますか?範囲は何ですか? – warrenm