Question

Y at-il un moyen facile de faire ce qui fonctionne en 10.5?

10.6 je peux utiliser NSImage CGImageForProposedRect: contexte NULL: NULL notes: NULL

Si je ne suis pas en utilisant 1b images en noir et blanc (comme groupe 4 TIFF), je peux utiliser bitmaps, mais cgbitmaps semblent pas comme cette configuration ... Y at-il une manière générale de le faire?

Je dois faire cela parce que j'ai un IKImageView qui semble vouloir seulement ajouter CGImages, mais tout ce que j'ai sont NSImages. À l'heure actuelle, je suis sur un setImage privé: méthode (NSImage *) que je serais vraiment vraiment ne pas utiliserai ...

Était-ce utile?

La solution

trouvé la solution suivante sur cette page :

NSImage* someImage;
// create the image somehow, load from file, draw into it...
CGImageSourceRef source;

source = CGImageSourceCreateWithData((CFDataRef)[someImage TIFFRepresentation], NULL);
CGImageRef maskRef =  CGImageSourceCreateImageAtIndex(source, 0, NULL);

Toutes les méthodes semblent être 10.4+ donc vous devriez être bien.

Autres conseils

[C'est long chemin. Vous devriez faire cela si vous soutenez encore une ancienne version d'OS X. Si vous pouvez exiger 10.6 ou plus tard, il suffit d'utiliser la CGImage procédé place.]

  1. Créer un CGBitmapContext.
  2. Créer un NSGraphicsContext pour le contexte bitmap
  3. Définir le contexte graphique que le contexte actuel
  4. Dessine l'image
  5. Créer l'CGImage du contenu du contexte bitmap.
  6. Relâchez le contexte bitmap.

de Snow Leopard, vous pouvez juste demander l'image pour créer un CGImage pour vous, en envoyant le NSImage un message CGImageForProposedRect:context:hints:

Voici une réponse plus détaillée pour l'utilisation - CGImageForProposedRect:context:hints::

NSImage *image = [NSImage imageNamed:@"image.jpg"];

NSRect imageRect = NSMakeRect(0, 0, image.size.width, image.size.height);

CGImageRef cgImage = [image CGImageForProposedRect:&imageRect context:NULL hints:nil];

Juste fait cela en utilisant CGImageForProposedRect:context:hints: ...

NSImage *image; // an image
NSGraphicsContext *context = [NSGraphicsContext currentContext];
CGRect imageCGRect = CGRectMake(0, 0, image.size.width, image.size.height);
NSRect imageRect = NSRectFromCGRect(imageCGRect);
CGImageRef imageRef = [image CGImageForProposedRect:&imageRect context:context hints:nil];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top