2010-08-26 2 views
0

Je reçois cette exception lors de la récupération de données à partir du carnet d'adresses. J'ai vérifié par internet mais je n'ai pas eu d'aide pour ça.Exception lors de la récupération des données du carnet d'adresses

Stockage de stockage bitmap d'allocation de débordement. Impossible de sauvegarder bitmap avec 320 octets par ligne, -2147483648 hauteur et 1 plans

J'utilise AddressBook Framework pour récupérer des données à partir du carnet d'adresses. est ce problème de mémoire ou il est dû à l'obtention d'informations d'avatar que j'ai définies dans le contact du répertoire.

Aidez-nous s'il vous plaît. Si vous avez des suggestions ou des recommandations à ce sujet, veuillez lui donner ...

Répondre

1

Merci pour votre réponse

Comme vous l'avez dit, j'ai vérifié tout le code pour dessiner une grande image ou vue. Et trouvé la fonction ci-dessous que j'ai utilisé pour redimensionner l'image. Maintenant, le redimensionnement de l'image sera effectué côté serveur. J'ai plus de doutes pour ce problème. Vous pouvez le vérifier en dessous du bloc de code. Maintenant, l'attente du client pour ce problème.

Merci encore pour votre aide.

-(NSData *)getCompressedImageDataFromData:(NSData *)imData 
{ 
    NSImage *pImage = [[[NSImage alloc] initWithData:imData] autorelease]; 
NSSize orgSize = [pImage size]; 
int widthInput, heightInput; 
widthInput = orgSize.width; 
heightInput = orgSize.height; 
if(widthInput <= 72 && heightInput <= 72) 
    return imData; 
double newheight = heightInput; 
NSSize newSize; 
if(widthInput >= 72) 
{ 
    double ratio; 
    ratio = widthInput/heightInput; 
    newheight = 72/ratio; 
    newSize = NSMakeSize (72, newheight); 
} 
else 
    newSize = NSMakeSize(widthInput, newheight); 
NSImage *outputImage = [[[NSImage alloc] initWithSize:newSize] autorelease]; 

if(![outputImage isValid]) 
    return nil; 

[outputImage lockFocus]; 

[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh]; 


[pImage drawInRect:NSMakeRect(0, 0, newSize.width, newSize.height) 
      fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0]; 

[outputImage unlockFocus]; 
NSData *imageData = [outputImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0]; 

return [imageData mutableCopy]; 
} 

0

Créez-vous une vue ou une image volumineuse dans laquelle vous dessinez plusieurs contacts dans le carnet d'adresses? Il semble que vous essayez de créer une image/vue trop grande.

+0

Je me prépare juste tableau de 50 contacts qui contiennent les détails de toutes les informations de contact, y compris l'image qui ont été mis en contact dans Carnet d'adresses. Je convertis cette information de contact dans la chaîne base64. –

+0

Exception non générée sur Leopard et récemment j'ai également vérifié sur Snow Leopard. Mais ne pas obtenir cette exception à nouveau. Il ne génère que sur le pc de notre client. –

+0

Utilisez le débogueur. Parcourez votre code jusqu'à ce que vous déclenchiez le message. Poster le code correspondant. –

Questions connexes