PNG Bild mit Quartz 2D anzeigen?

  • PNG Bild mit Quartz 2D anzeigen?

    Hallo zusammen!

    Ich habe nun schon einiges über die iPhone SDK im Apple Dev. Bereich gelesen. Nur immer wenn ich etwas selbst zu programmieren versuche, klappt es einfach nie.
    Könnte mir jemand helfen, wie ich mit Quarz 2D ein Bild anzeigen kann? Wäre wirklich sehr dankbar.

    G Jan
  • RE: PNG Bild mit Quartz 2D anzeigen?

    Wieso mit Quartz 2D. Sorry aber ich habe das Gefühl, dass Du keine Ahnung hast wovon Du redest. Also. Erstmal tastet man sich mit einem kleinen Beispielprogramm ran. Zum Beispiel dem Anzeigen eines Bildes auf dem iPhone oder so. Dazu solltest Du Dir mal durchlesen, wie man mit XCode ein Programm für das iPhone erzeugt. Dann solltest Du natürlich auch noch Objective-C lernen. Ohne geht gar nix. Die Leute hier im Forum sind nicht dazu da dezidierte Anleitungen vorzugeben, sondern spezifische Probleme zu erörtern. Oder meinste jemand hier im Forum hat Zeit und Musse eine Anleitung für Dich zu basteln? Ich glaube kaum. Also schau Dir nochmal die Doku an und frag dann nochmal spezifischer, was Dein Problem ist. Stichwort UIImage. :O So! Ich geh jetzt Glühwein trinken. Meinen ersten dieses Jahr. Mahlzeit!
  • Ja, ich habe keine Ahnung. Aber ich denke, wenn mir jemand ein kurzes Beispiel geben könnte in Sachen Grafikausgabe, wären die meisten meiner Probleme gelöst. Ich habe im Moment wirklich ein riesen Durcheinander, in welche Datei was reinkommt und wann was aufgerufen wird.
    Ich habe bei allen Tutorials (auch die von Apple) das Problem, dass sie entweder zu einfach (Hello World) oder dann wieder zu schwierig sind. Bisher habe ich noch keinen Mittelweg gefunden, der einigermassen verständlich an die schwierigen Sachverhalte herangeht.
    Also, ich denke nicht, dass ihr alle nichts besseres zu tun hättet, als mir zu helfen. Aber eigentlich sind ja die vielen Foren dazu da, Leuten (und N00bs wie mir) zu helfen. Und mir wäre am meisten geholfen, wenn mir jemand sagen könnte wo und in welcher Reihenfolge ich welche Befehle einsetzen muss, damit mein Bild angezeigt wird.
  • Ist Dein Bild Bestandteil des Projektes, also wird es im App Bundle mit ausgeliefert oder woher kommt das Bild?

    Wenn es zum Projekt gehört und im App Bundle liegt, dann kannst Du im Interface Builder einfach einen UIImageView verwenden und im Inspector zum UIImageView das Bild voreinstellen.

    Wenn es nicht zum Projekt gehört dann brauchen wird schon ein paar Hintergrundinfos um Dir mit Infos/Code weiterhelfen zu können.
  • Original von kingjan
    Also, das Bild ist im Projekt eingefügt. Ich möchte jedoch später ein Spiel programmieren und weiss nicht ob dann UIImageView dazu geeignet ist (deshalb dachte ich an Quartz 2D).
    Ich glaube Du solltest Dir erstmal ein paar Gedanken machen, wie objektorientiertes Programmieren überhaupt funktioniert. Vielleicht nimmst Du auch den Anfängerkurs von cocoading mit. Wenn Dir Hallo Welt zu einfach ist, was ist dann das Problem mit UIImage? Das ist auch nur ein Objekt. Such Dir ein Hallo Welt iPhone Beispielprogramm von Apple und dann schau Dir mal die Doku für UIImageView bzw. UIImage an. Dort findest Du sogar Beispielcode in der Doku. Zum Beispiel:

    Quellcode

    1. Related sample code BubbleLevel Metronome Touches UICatalog ViewTransitions

    Quellcode

    1. imageWithContentsOfFile:
    2. Creates and returns an image object by loading the image data from the file at the specified path.
    3. + (UIImage *)imageWithContentsOfFile:(NSString *)path
    4. Parameters path The full or partial path to the file.
    5. Return Value A new image object for the specified file,
    6. or nil if the method could not initialize the image from
    7. the specified file.
    8. Discussion This method does not cache the image object.
    9. Availability Available in iPhone OS 2.0 and later.
    10. Declared In UIImage.h
    Wer lesen kann ist klar im Vorteil :D
  • Hmm es will einfach nicht klappen!
    Ich habe folgendes versucht: ViewBased Application erstellt und dann folgender Code in der Delegate eingesetzt:

    Quellcode

    1. - (void)applicationDidFinishLaunching:(UIApplication *)application {
    2. UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"UntitledViewController" bundle:[NSBundle mainBundle]];
    3. [self setViewController:aViewController];
    4. [aViewController release];
    5. UIImage *image = [UIImage imageNamed:@"lol.gif"];
    6. [image drawAtPoint:(CGPointMake(0.0, 0.0))];
    7. // Override point for customization after app launch
    8. [window addSubview:viewController.view];
    9. [window makeKeyAndVisible];
    10. }
    Alles anzeigen


    Klappt aber nicht. Kann mir einer weiterhelfen? THX
  • Kannst du bitte künftig nicht einfach nur schreiben "klappt nicht" sondern ganz klassisch was das erwartete Resultat wäre und was du als Resultat bekommen hast.

    1. Ist "lol.gif" in den Resourcen?
    2. Probiers mal mit einer PNG-Datei. Ich weiß nicht, ob gif auf dem iPhone unterstüzt werden.
    3. Wird applicationDidFinishLaunching: überhaupt aufgerufen? Bau mal ein NSLog(...) ein.
    4. Und überhaupt ist der Code doof wie mir gerade auffällt. Du versuchst ohne Context zu zeichnen.

    Hol dir ein Outlet auf ein UIImageView und mach dann imageView.image = [UIImage imageNamed:@"lol.gif"];
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Original von kingjan
    Klappt aber nicht. Kann mir einer weiterhelfen? THX

    Kein Wunder. Du erzeugst nur einen ViewController, keinen View. Du benutzt drawAtPoint: einfach irgendwo, ohne dass ein Grafikkontext vorhanden wäre. Kurz, Du weißt gar nicht, wie man in Cocoa (touch) überhaupt zeichnet. Hier solltest Du erst einmal einsteigen. Wie sagte Alex in einem anderem Forum so schön?

    Du kannst nicht in der ersten Fahrstunde mit 240km/h über die Autobahn kacheln.

    Michael
  • Original von Michael
    Du kannst nicht in der ersten Fahrstunde mit 240km/h über die Autobahn kacheln.


    Das behauptest du. :D :D

    Lies dir zuerst einige Tutorials durch, sonst wirst du nicht weit kommen und gefrustet aufgeben.
    Widgetschmie.de • Life is too short for gadgets
  • Für mich kling das einfach nur so, als wärst du schlicht zu faul dich mit der Materie auseinander zu setzten! Kay hat schon recht, wiso sollen wir dir alles vordiktieren damit du es per copy / paste einfügen kannst?

    Und wenn du wirklich iPhone programmieren willst, musst du halt auch Zeit und Geduld aufwenden um es richtig zu lernen ansonsten kannst du eh gleich wieder aufhören!
    Ialea iacta est