Text in Bild schreiben - OS X

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Text in Bild schreiben - OS X

    Hallo,

    ich bin noch ziemlich neu hier auf dem Board und noch nicht besonders lang mit Objektive-C unterwegs.

    Für ein kleines Mac-Project (eher just4fun & um was zu lernen:D) soll auf ein Bild Text geschrieben werden und das Bild soll dann (mit dem Text) auch wieder exportiert/gespeichert werden.
    Ich habe diesbezüglich schon etwas gegooglet und bin auf folgende Lösung gestoßen:

    Quellcode

    1. NSImage* myImage = self.imageView.image;
    2. NSImage* newImage = [[NSImage alloc] initWithSize: [myImage size]];
    3. [newImage lockFocus];
    4. [myImage compositeToPoint: NSMakePoint(0, 0) operation: NSCompositeCopy];
    5. NSString* myString = @"Beispieltext";
    6. NSMutableParagraphStyle* style = [[NSMutableParagraphStyle alloc] init];
    7. [style setAlignment:NSCenterTextAlignment];
    8. NSDictionary *attr = [NSDictionary dictionaryWithObject:style forKey:NSParagraphStyleAttributeName];
    9. [myString drawAtPoint: NSMakePoint(30, 30) withAttributes:attr];
    10. [newImage unlockFocus];
    Alles anzeigen



    Somit wird der Text geschrieben, das daraus resultierende Bild unterliegt dem Ausgangsbild qualitativ jedoch derartig, dass es so gut wie unbrauchbar ist.

    Hat jemand eine Idee, wie ich das verhindern kann oder evtl. einen ganz anderen Lösungsansatz?

    Gruß
  • Ich würde das mit CoreImage machen.Da Du das Bild aus einem imageview holst, wird es nicht mehr die urspr. Auflösung haben, da das view es wohl schon auf seine eigene Größe herunter gerechnet hat.

    Vorgehensweise: Bild mit ImageIO nach CoreImage laden, dann einen Textfilter draufpacken, Bild mit ImageIO wieder abspeichern.