UIGraphicsContext Transparenz

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

  • UIGraphicsContext Transparenz

    Hey Leute!

    Ich habe mir vor einiger Zeit mal eine drawView gebastelt.
    Dort habe ich auch eine Funktion implementiert, die die Zeichnung speichern kann:

    Quellcode

    1. - (UIImage *)getImageOfDrawing
    2. {
    3. UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 1.0);
    4. [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    5. UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    6. return image;
    7. }


    Jetzt füge ich diese "UIDrawView" in ein anderes Projekt ein, um auf einem Foto zu zeichnen.
    Nur leider gelingt mir das nicht so gut.

    Quellcode

    1. - (UIImage *)combineDrwing
    2. {
    3. UIGraphicsBeginImageContext([theImageView image].size);
    4. [[theImageView image] drawAtPoint:CGPointMake(0, 0)];
    5. [[drawView getImageOfDrawing] drawAtPoint:CGPointMake(0, 0)];
    6. UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
    7. UIGraphicsEndImageContext();
    8. return finalImage;
    Alles anzeigen



    Wenn ich in der erstem Methode (- getImageOfDrawing) die opaque flagg auf YES setze, wird das Bild im Hintergrund (wie erwartet) schwarz.
    Setze ich die aber auf NO (also alpha Kanal), so wird der Hintergrund einfach weiß und gibt nicht das Bild der UIImageView aus.

    Hat da jemand von euch 'ne Idee?
    Sprich wie ich den layer (UIView mit backgroundColor:[UIColor clearColor]) mit Transparenz auf das andere Bild gelegt bekomme?


    Herzlichen Dank, liebe Grüße
    Julian


    EDIT:
    Das Hintergrundbild lässt sich (ferner ich das overlay nicht drüber zeichne) in das neue UIImage drawen.
    Scheinbar schafft es der layer (in der erstem Methode) nicht, transparent zu werden...
  • Habs grad gelöst…
    Sorry für den Post, kann evtl. gelöscht werden?

    Quellcode

    1. - (UIImage *)getImageOfDrawing
    2. {
    3. UIGraphicsBeginImageContext(self.bounds.size);
    4. [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    5. UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    6. UIGraphicsEndImageContext();
    7. return image;
    8. }