Cómo resolver “_vImagePermuteChannels_ARGB8888”, al que se hace referencia en:¿ERROR?

StackOverflow https://stackoverflow.com//questions/12696655

  •  12-12-2019
  •  | 
  •  

Pregunta

Cuando convierto RGBA a ARGB, utilicé este código:

vImage_Buffer src;
src.height = height;
src.width = width;
src.rowBytes = srcBytesPerRow;
src.data = srcRows;

vImage_Buffer dest;
dest.height = height;
dest.width = width;
dest.rowBytes = destBytesPerRow;
dest.data = destRows;

// Swap pixel channels from BGRA to RGBA.
const uint8_t map[4] = { 2, 1, 0, 3 };
vImagePermuteChannels_ARGB8888(&src, &dest, map, kvImageNoFlags);

Recibo el siguiente error:Para eso agregué Convertion.h y Accelerate.framework.

Símbolos indefinidos para la arquitectura armv6:
"_vImagePermuteChannels_ARGB8888", referenciado en:-[Imagen del proceso CCOverlayView] en CCOverlayView.old:Símbolo(s) no encontrado(s) para la arquitectura armv6 Collect2:LD devolvió el código de salida 1

¿Alguien puede ayudarme por favor?

¿Fue útil?

Solución

Es posible que esté viendo uno de dos problemas:

1) Esta rutina se encuentra en el Accelerate.framework.Necesitas agregar esto a tu proyecto.

2) Esta rutina sólo está disponible en iOS 5.0 y posteriores;probablemente no deberías incluir armv6 en estas compilaciones.(Los dispositivos que requieren armv6 no pueden ejecutar iOS 5.0).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top