2 votes

Capture d'écran OSX avec C++ et CGWindow API

J'essaie de faire une capture d'écran sur OSX avec C/C++. Jusqu'à présent, voici ce que j'ai obtenu :

#import <ApplicationServices/ApplicationServices.h>

int main( int argc, char** argv) {
  CGImageRef screenShot = CGWindowListCreateImage( CGRectInfinite,
      kCGWindowListOptionOnScreenOnly, kCGNullWindowID, kCGWindowImageDefault);

  CFStringRef file = CFSTR("/Users/aduh/Desktop/lala.jpg");
  CFStringRef type = CFSTR("public.jpeg");
  CFURLRef urlRef = CFURLCreateWithString( NULL, file, NULL );
  CGImageDestinationRef idst = CGImageDestinationCreateWithURL( urlRef, type, 1, NULL );
  CGImageDestinationAddImage( idst, screenShot, NULL );
  CGImageDestinationFinalize( idst );}

Il compile bien mais rien ne se passe vraiment. Je suis probablement en train de faire une erreur stupide, alors si quelqu'un peut m'indiquer la bonne direction, ce serait génial !

1voto

peanutman Points 217

Comme l'a dit le gars plus haut, cela peut être corrigé de cette façon, j'utilise aussi C++ si cela a de l'importance :

CFURLRef urlRef = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, file, kCFURLPOSIXPathStyle, false );

0voto

a.out Points 21

Remplacer CFURLCreateWithString() con CFURLCreateWithSystemPath()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X