aşağıdaki hata ile bir kilitlenme karşı karşıyayım:Kilitlenme CGDataProviderCreateWithCopyOfData: vm_copy başarısız oldu: durum 1
"CGDataProviderCreateWithCopyOfData: vm_copy failed: status 1."
ben birden fazla soru varsa ve yardımcı olabilir.
Vm_copy'de durum 1 ne anlamadı?
Bu kilitlenme, yalnızca veri kopyasının iç döngüsü için bir kesme noktası belirlediğimde gerçekleşir. Ve sonra yeniden başlatın ve kesme noktasını kaldırın. Kesme noktası yoksa, işlev yürütülür, ancak boş bir resim alırım. Bir kırılma noktası belirlemesem bile, bu tür kilitlenmeler yakalanır ve uygulama yürütmeyi durdurur? Ben CGBitmapContextCreateImage yürüttüğünüzde
Bu hata
gelir. Bunu nasıl çözeceğini bilen var mı?
-(UIImage *) convertBitmapRGBA8ToUIImage:(UInt8**)img
:(int) width
:(int) height
{
CGImageRef inImage = m_inFace.img.CGImage;
UInt8*piData = calloc(width*height*4,sizeof(UInt8));
int iStep,jStep;
for (int i = 0; i < height; i++)
{
iStep = i*width*4;
for (int j = 0; j < width; j++)
{
jStep = j*4;
piData[iStep+jStep] =img[i][j];
piData[iStep+jStep+1] =img[i][j];
piData[iStep+jStep+2] = img[i][j];
}
}
CGContextRef ctx = CGBitmapContextCreate(piData,
CGImageGetWidth(inImage),
CGImageGetHeight(inImage),
CGImageGetBitsPerComponent(inImage),
CGImageGetBytesPerRow(inImage),
CGImageGetColorSpace(inImage),
CGImageGetBitmapInfo(inImage)
);
CGImageRef imageRef = CGBitmapContextCreateImage(ctx);
UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
CGContextRelease(ctx);
CGImageRelease(imageRef);
free(piData);
return finalImage;
}
Evet, bellek hizalama sorunuydu. Görüntü yönelimini düşünmüyordum. CGimage için farklı genişlik ve yükseklik verdi. Eğer belirttiği gibi bu bellek mis hizalama neden oldu. Cevap için teşekkürler. – Jailbroken