De NSView à JPEG
Herve
Membre
Bonjour,
J'essaie de sortir des jpeg de mes NSView.
Ce code ne plante pas mais ne marche pas :
"Image archivée" apparaà®t bien dans la console, mais l'image n'est pas sur le disque dur. J'ai vu une doc Apple sur un autre type d'images, mais cela n'a pas l'air si simple en fait...
Quelqu'un dans ce forum aurait une idée peut-être? Merci.
J'essaie de sortir des jpeg de mes NSView.
Ce code ne plante pas mais ne marche pas :
<br />- (IBAction) exporteJPEG : (id) sender{<br /> NSSavePanel * savePanel = [NSSavePanel savePanel];<br /> <br /> NSString * fileName = [savePanel filename];<br /> [savePanel setCanCreateDirectories:YES];<br /> [savePanel setRequiredFileType:@"jpg"];<br /> [savePanel setExtensionHidden:YES];<br /> int runResult = [savePanel runModal];<br /> if (runResult == NSOKButton){<br /> NSBitmapImageRep *image;<br /> <br /> image = [[NSBitmapImageRep alloc]initWithFocusedViewRect:[leDessin bounds]];<br /> if (image){<br /> [[image representationUsingType: NSJPEGFileType properties:[NSDictionary dictionaryWithContentsOfFile:@"NSImageCompressionMethod"]]<br /> writeToFile:fileName atomically:NO];<br /> NSLog(@"image archivée");<br /> } <br /> <br /> else{<br /> [[NSAlert alertWithMessageText:NSLocalizedString(@"PASJPEG", @"")<br /> defaultButton:@"OK" <br /> alternateButton:nil<br /> otherButton:nil<br /> informativeTextWithFormat:@""] runModal];<br /> return;<br /> }<br /> }<br />}<br />
"Image archivée" apparaà®t bien dans la console, mais l'image n'est pas sur le disque dur. J'ai vu une doc Apple sur un autre type d'images, mais cela n'a pas l'air si simple en fait...
Quelqu'un dans ce forum aurait une idée peut-être? Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et sinon [tt]writeToFile:atomically[/tt] retourne un booléen que tu ferais bien de lire pour savoir si le fichier a été créé ou pas. Parce que là ton NSLog va s'afficher que l'écriture ait réussi ou pas (et c'est manifestement le cas "ou pas" qui t'arrive). Voire utiliser la méthode alternative qui prend un NSError** en paramètre (je suis sûr que ça doit bien exister pour ce genre de cas, vérifier dans la doc) pour permettre de récupérer un NSError qui décrira mieux l'erreur si ça se passe pas bien.
Et puis sinon, bah comme toujours, les bases de la base du débug. Mettre des breakpoints, mettre des NSLog, regarder ce que vaut le résultat de chaque élément comme en particulier ton [tt]representationUsingType:properties:[/tt] (je parie qu'il est nil, tiens). Bref, les classiques du débogage pour regarder pas à pas où ça coince exactement, sur quel objet, etc.
J'ai fini par renoncer. Mon soft propose déjà la possibilité d'imprimer la View en question. Après on est sur Mac, on peut sortir un pdf, voire depuis l'onglet "Aperçu" tout ce qu'on veut. Je me fatigue pour rien...
Merci tout de même.