iPhone programmgesteuert Ernte ein quadratisches Bild zu erscheinen, als Kreis
Ich versuche ein Bild zu erstellen für Sie einen benutzerdefinierten Stil UIButton mit einem Bild aus der camera roll auf dem iPhone. Der button hat einen Runden hintergrund und effektiv erscheint wie ein Kreis. Nun brauche ich ein Bild zu gehen, in der Mitte der Taste, die auch angezeigt wird Runde.
Wie kann ich schneiden Sie ein Quadrat UIImage zu erscheinen Runde mit Transparenz außerhalb der Runde Fläche?
Wenn die Maskierung beteiligt ist, muss ich vor-Rendern " eine Maske oder kann ich Sie erstellen programmgesteuert(z.B. ein Kreis)?
Danke!
InformationsquelleAutor Alex Stone | 2012-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können mit
CoreGraphics
zeichnen Sie die Maske dynamisch.Dann können Sie das maskierte Bild.
Beispiel für Maskierung:
Vergessen Sie nicht, lassen Sie die erstellte Maske und Bild, oder Sie werden undicht Speicher (ARC befasst sich nicht mit den CoreGraphics's undurchsichtige Typen). Dies
CGImageRef maskedImageRef = CGImageCreateWithMask([image CGImage], mask); UIImage *maskedImage = [UIImage imageWithCGImage:masked]; CGImageRelease(maskImageRef); CGImageRelease(maskedImageRef); return maskedImage;
.aktualisiert für das release.
InformationsquelleAutor calimarkus
Ich habe noch nie so etwas getan, aber versuchen Sie es mit
QuartzCore
framework und seine'cornerRadius
Eigenschaft. Beispiel:spielen, um mit ihm ein wenig, und Sie werden bekommen, was Sie wollen.
Hoffe es hilft
Sie müssen imgView.clipsToBounds = JA
Hier ist, warum ich mag diese Lösung, auch wenn es nur für einen Kreis: Für den häufigen Fall, in dem Sie laden ein Bild in das UIImageView dynamisch (und wahrscheinlich ändern Sie das Bild, wie bei der Wiederverwendung eine table view cell) diese Lösung lässt Sie die Maske einmal und Sie gilt für immer. Die anderen Lösungen hier, während die mehr Allgemeinen, benötigen Sie die Maske anwenden jedes mal, wenn Sie laden ein neues Bild. Auch dies ist eine Zeile 🙂
auch für einen Kreis, cornerRadius = Bildansicht.frame.Größe.Breite / 2
Warum das so viele upvotes? Die Frage ist nicht, über UIImageView
InformationsquelleAutor Novarg
Ich begann, mich in diese ein paar Wochen zurück. Ich habe versucht, alle Vorschläge hier, von denen keiner funktionierte. In der großen tradition von RTFM, ich ging und Lesen Sie die Dokumentation von Apple auf Quartz 2D Programming und kam mit dieser. Bitte probieren Sie es aus und lassen Sie mich wissen, wie Sie gehen.
Den code kann relativ leicht verändert, um Ernte zu einer elipse oder irgendeine andere Form, definiert durch ein Pfad.
Stellen Sie sicher, gehören Quartz 2D in Ihrem Projekt.
Gehören Sie den folgenden code in Ihre UIView-Klasse ersetzen "monk2.png" mit Ihrem eigenen image-name.
InformationsquelleAutor Chris Nelson
Hier ist ein schneller Weg, um erstellen Sie abgerundete Ecken auf ein Quadrat Bildansicht, um es so Aussehen wie bei einem perfekten Kreis. Grundsätzlich gelten eine Ecke radius gleich 1/2 der Breite (Breite == Höhe, auf der ein quadratisches Bild).
InformationsquelleAutor ndnguru
InformationsquelleAutor AP_
Kategorie UIImage zu maskieren eines Bildes mit einem Kreis:
Bekommen es hier.
InformationsquelleAutor Nikolay Dyankov
Ich habe eine andere Lösung:
Diese Variante ist besser für die performance als cornerRadius direkt.
Dies ist eine Methode der UIView-Klasse
InformationsquelleAutor Igor
Persönlich, ich würde erstellen Sie eine transparente Kreis Bild mit undurchsichtigen Ecken, um die overlay-Foto. Diese Lösung ist nur geeignet, wo Sie werden Platzierung der Bild an einer Stelle auf der Benutzeroberfläche angezeigt werden, und nimmt den undurchsichtigen Ecken harmonisch in den hintergrund.
InformationsquelleAutor aaroncatlin
Folgenden ist die Antwort, die ich gegeben in Wie schneiden UIImage auf Ovale oder Runde Form?, um das Bild eines Kreises. Es funktioniert für mich..
Laden Sie die Archiv-Datei-Unterstützung
Folgenden Linien verwendet, um die Größe des Bildes und umwandeln in Runden mit radius
InformationsquelleAutor Dilip Rajkumar
Verwenden Sie einfach
InformationsquelleAutor n.by.n