Ich habe ein großes Bild, das zu groß ist, um in den Speicher geladen zu werden, aber ich interessiere mich nur für eine Untergruppe von Pixeln in diesem großen Bild. Ist es möglich, nur diese Teilmenge von Pixeln in den Speicher zu decodieren? Ich weiß, dass in Android eine Klasse in der API ist genau dies zu tun BitmapRegionDecoder sind so etwas wie dieseios Decode Teil eines Bildes
rief ich CGDataProviderCreateSequential gefunden, aber es braucht, um die rohen Pixel im Konstruktor ...
Gerade jetzt ich tue so etwas wie diese:
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);
Die aktuelle Weisheit sagt, dass die Art und Weise dies zu tun ist, Ihr Bild in Kacheln zu schneiden und nur die aktuell angezeigten Kacheln mit der entsprechenden Zoomstufe zu laden. Wie groß ist dieses Bild (in Pixeldimensionen)? – warrenm
um 4096x3072 aber die Sache ist, dass ich eine Kachel des großen Bildes direkt in meine offene gl ES App laden möchte. Also muss ich die benötigten Pixel extrahieren und glTexImage2D (...) mit meinen Subpixeldaten aufrufen – AkademiksQc
Ist die Größe des Unterbildes, das du entpackst, immer gleich, oder variiert es? Was ist die Reichweite? – warrenm