Tengo una imagen grande que es demasiado grande para cargarla en la memoria, pero solo me interesa un subconjunto de píxeles dentro de esa imagen grande. ¿Es posible decodificar en la memoria solo este subconjunto de píxeles? Sé que en Android hay una clase en la API para hacer exactamente esto llama BitmapRegionDecoder son algo asíios Decodificar parte de una imagen
encontré CGDataProviderCreateSequential pero necesita los píxeles primas en el constructor ...
En este momento estoy haciendo algo como esto:
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);
La sabiduría actual dice que la forma de hacerlo es dividir la imagen en mosaicos y cargar de forma perezosa solo los mosaicos que se muestran actualmente en el nivel de zoom apropiado. ¿Exactamente qué tan grande es esta imagen (en dimensiones de píxeles)? – warrenm
alrededor de 4096x3072 pero la cuestión es que quiero cargar una ficha de la imagen grande directamente en mi aplicación gl gl ES. Así que necesito extraer los píxeles necesarios y llamar a glTexImage2D (...) con mis datos subpíxel – AkademiksQc
¿El tamaño de la subimagen que extraes es siempre el mismo o varía? ¿Cuál es el rango? – warrenm