Convertir TIFF (ou pdf) vers jpeg

ChachaChacha Membre
12:02 modifié dans API AppKit #1
Salut,

J'aimerais convertir du pdf ou du tiff vers du jpeg. Je suppose qu'il faut se tourner vers Quicktime, mais je n'arrive pas à  trouver la doc idoine !  Quelqu'un peut-il m'aiguiller ?
Merci d'avance,

Chacha

Réponses

  • BruBru Membre
    12:02 modifié #2
    Je te renvoie sur ce sample code d'Apple que j'avais utilisé (y'a longtemps) pour faire quelque chose de similaire...

    http://developer.apple.com/samplecode/qtgraphimp/qtgraphimp.html

    .
  • ChachaChacha Membre
    février 2005 modifié #4
    dans 1109604141:


    Je n'ai pas encore regardé la réponse de Bru, mais celle-ci m'intrigue déjà  : est-ce que cela signifie que le TIFF peut encapsuler du jpeg ? Je croyais que le TIFF, c'était juste un format parmi d'autres, mais ça a l'air plus compliqué que ça, alors ?

    Ah, non, ça y est , j'ai compris ! En fait, dans l'exemple de mpergand, on passe par du tiff uniquement pour compresser les données, et, sans doute, gagner de la place en mémoire. Mais c'est bien une compression jpeg qui est appliquée derrière !
    Okéééé
    Merci beaucoup
  • felixfelix Membre
    12:02 modifié #5
    Hello
    si ça peut vous aider, j'utilise cette routine

    NSRect rTotalBase = [view bounds];

    NSImage *grayImage = [[NSImage alloc] initWithSize: rTotalBase.size];
    NSBitmapImageRep *bitmap;
    [view lockFocus];
    bitmap = [[NSBitmapImageRep alloc] initWithFocusedViewRect: rTotalBase];
    [view unlockFocus];
    [grayImage addRepresentation: bitmap];
             
    NSData *data = [grayImage TIFFRepresentationUsingCompression:NSTIFFCompressionNone factor:0.0];
    data = [[NSBitmapImageRep imageRepWithData:data] representationUsingType:NSJPEGFileType properties: nil];

    felix
  • ChachaChacha Membre
    février 2005 modifié #6
    Super, ça marche, mais il reste une question.
    Comment se fait-il que nulle part on ne spécifie le taux de compression jpeg ?

    [plus tard]
    C'est bon, j'ai trouvé, il faut simplement passer ce facteur dans le paramètre "properties".
    C'est quand même bien fait, Cocoa.
  • fouffouf Membre
    12:02 modifié #7
    Je déterre un peu. Voulant enregistrer le contenu de ma vue en format jpeg, j'ai regardé votre méthode. Il ya un inconvenient : celle de felix donne les donnees qui sont a l'ecran. Pour cela, la mienne est, je pense, meilleure. La voila
    - (NSData *)dataWithJPEGInsideRect:(NSRect)rect<br />{<br />	NSBitmapImageRep *rep = [[NSBitmapImageRep alloc]initWithData:[self dataWithPDFInsideRect:rect]];<br />	if (rep == nil){<br />		NSLog(@&quot;rep == nil&quot;);<br />		return nil;<br />	}<br />	NSImage *jpgImage = [[NSImage alloc]initWithSize:rect.size];<br />	[jpgImage addRepresentation:rep];<br />	<br />	NSData *data = [jpgImage TIFFRepresentationUsingCompression:NSTIFFCompressionNone factor:0.0];<br />	data = [[NSBitmapImageRep imageRepWithData:data] representationUsingType:NSJPEGFileType properties: nil];<br />	<br />	return data;<br />}
    
  • Eddy58Eddy58 Membre
    12:02 modifié #8
    Petit point important, la méthode dataWithPDFInsideRect:, ne renvoie pas de canal alpha... :o
  • fouffouf Membre
    12:02 modifié #9
    dans 1109795900:

    Petit point important, la méthode dataWithPDFInsideRect:, ne renvoie pas de canal alpha... :o

    Oui, mais pour le JPEG, on s'en moque : il ya pas de pixel transparent.
    Pour le TIFF, d'accord.

    D'ailleurs, personne n'aurait du code pour récupérer une image TIFF d'une vue avec des pixels transparents ?
  • cbrandtcbrandt Membre
    12:02 modifié #10
    fouf:
    essaye de créer en mémoire une fenêtre à  la bonne taille, remplie la avec la couleur transparente ([fenetre setBackgroundColor: NSColor clearColor) puis dessine ta vue dedans, et ensuite récupère le contenu comme indiqué plus haut
  • CéroceCéroce Membre, Modérateur
    12:02 modifié #11
    dans 1109604320:

    dans 1109604141:


    Je n'ai pas encore regardé la réponse de Bru, mais celle-ci m'intrigue déjà  : est-ce que cela signifie que le TIFF peut encapsuler du jpeg ? Je croyais que le TIFF, c'était juste un format parmi d'autres, mais ça a l'air plus compliqué que ça, alors ?



    Le JPEG n'est pas un format de fichiers (le format s'appelle le JIFF, bien que l'extension est souvent .jpg), c'est une méthode de compression. Il me semble qu'en effet, on peut utiliser une méthode de compression JPEG avec le TIFF.
  • muqaddarmuqaddar Administrateur
    12:02 modifié #12
    dans 1109844335:

    dans 1109604320:

    dans 1109604141:


    Je n'ai pas encore regardé la réponse de Bru, mais celle-ci m'intrigue déjà  : est-ce que cela signifie que le TIFF peut encapsuler du jpeg ? Je croyais que le TIFF, c'était juste un format parmi d'autres, mais ça a l'air plus compliqué que ça, alors ?



    Le JPEG n'est pas un format de fichiers (le format s'appelle le JIFF, bien que l'extension est souvent .jpg), c'est une méthode de compression. Il me semble qu'en effet, on peut utiliser une méthode de compression JPEG avec le TIFF.


    Je confirme ! ;)
  • cbrandtcbrandt Membre
    12:02 modifié #13
    JFIF
  • VeillardVeillard Membre
    12:02 modifié #14
    Oui, ça s'ouvre sans problème avec Graphic Converter  ;)
  • Eddy58Eddy58 Membre
    12:02 modifié #15
    dans 1109838969:

    D'ailleurs, personne n'aurait du code pour récupérer une image TIFF d'une vue avec des pixels transparents ?

    Et bien tu peux utiliser la méthode initWithFocusedViewRect.:)
Connectez-vous ou Inscrivez-vous pour répondre.