Faire une image avec une NSOpenGLView

ChachaChacha Membre
16:55 modifié dans API AppKit #1
Salut,

Après quelques recherches sur le net, j'ai eu la confirmation que le dataWithPDFInsideRect ne marche pas avec une NSOpenGLView. Pour récupérer l'image, on se débrouille avec un readPixels et on construit une bitmapRep. Bon, ça, ça va.
Par contre, je n'ai pas réussi à  détecter les pixels de l'arrière-plan !
Je ne peux pas me permettre de leur donner une couleur particulière, alors j'ai essayé de les récupérer en lisant le Detph buffer, mais ce dernier est uniforme et ne contient pas les valeurs espérées.
À votre avis, j'ai fait une erreur quelque part ? Comme feriez-vous pour construire une image à  partir d'une NSOpenGLView, en préservant la transparence ?

+
Chacha

Réponses

  • 16:55 modifié #2
    Tu as essayé
    [aView lockFocus];<br />NSBitmapImageRep *bitmap=[[NSBitmapImageRep alloc] initWithFocusedViewRect:[aView frame]];<br />[aView unlockFocus];
    


    Sinon, depuis 10.4 tu peux utiliser
    NSBitmapImageRep *bitmap=[self bitmapImageRepForCachingDisplayInRect:rect];<br />[self cacheDisplayInRect:rect toBitmapImageRep:bitmap];<br />NSImage *img=[[NSImage alloc] initWithData:[bitmap TIFFRepresentation]];
    

    Pour récupérer le contenu...
  • ChachaChacha Membre
    16:55 modifié #3
    dans 1126774985:

    Tu as essayé
    <br />NSBitmapImageRep *bitmap=[[NSBitmapImageRep alloc] <br />[/code]<br />[code]NSBitmapImageRep *bitmap=[self bitmapImageRepForCachingDisplayInRect:rect];<br />[self cacheDisplayInRect:rect toBitmapImageRep:bitmap];<br />NSImage *img=[[NSImage alloc] initWithData:[bitmap TIFFRepresentation]];<br />[/quote]<br />Et non, ça ne marche pas avec des NSOpenGLView, c&#39;est pour ça que je n&#39;y arrive pas et que je me fais suer avec des glReadPixels() !<br /><br />+<br />Chacha
    
  • BruBru Membre
    16:55 modifié #4
    Chacha, as-tu essayé la nouvelle fonction CGBitmapContextCreateImage (dispo depuis 10.4) qui permet de créer une CGImage à  partir d'un contexte ?

    .
  • ChachaChacha Membre
    16:55 modifié #5
    dans 1126777656:

    Chacha, as-tu essayé la nouvelle fonction CGBitmapContextCreateImage (dispo depuis 10.4) qui permet de créer une CGImage à  partir d'un contexte ?

    Ah, non, je n'avais pas vu cette fonction.
    Mais là , j'ai un peu essayé, et je me retrouve devant un problème tout bête : comment créer une NSImage à  partir d'une CIImage ?
    +
    Chacha
  • 16:55 modifié #6
    NSCIImage (sous classe de NSImageRep) peut peut être aider...
  • ChachaChacha Membre
    16:55 modifié #7
    dans 1126786665:

    NSCIImage (sous classe de NSImageRep) peut peut être aider...

    Je ne connaissais pas : merci mille fois !

    +
    Chacha
Connectez-vous ou Inscrivez-vous pour répondre.