Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: OS X Entwicklerforum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Sonntag, 15. April 2012, 18:49

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
2
3
4
5
6
7
8
9
10
11
12
13
14
    NSImage* myImage = self.imageView.image;
    
    NSImage* newImage = [[NSImage alloc] initWithSize: [myImage size]]; 
    [newImage lockFocus]; 
    
    [myImage compositeToPoint: NSMakePoint(0, 0) operation: NSCompositeCopy]; 
      
    NSString* myString = @"Beispieltext"; 
    NSMutableParagraphStyle* style = [[NSMutableParagraphStyle alloc] init];
    [style setAlignment:NSCenterTextAlignment];
    NSDictionary *attr = [NSDictionary dictionaryWithObject:style forKey:NSParagraphStyleAttributeName];
    [myString drawAtPoint: NSMakePoint(30, 30) withAttributes:attr]; 
    
    [newImage unlockFocus];



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ß

Beiträge: 137

Wohnort: Mannheim

Beruf: Softwareentwickler

  • Private Nachricht senden

2

Sonntag, 15. April 2012, 20:41

Arbeite bitte mal diese Tutorial durch. Dann solltest Du das Zeichnen in einen View verstanden haben.

http://www.cocoa-coding.de/gnsview/grafiknsview.html


Grüsse

3

Montag, 16. April 2012, 19:20

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.

Verwendete Tags

Bild, Label, Mac, NSImage, objec, OS X, Text, Xcode

Social Bookmarks