webentwicklung-frage-antwort-db.com.de

Mit Xcode 6 können Sie VECTOR-Bild-Assets ... wie man sie verwendet?

Ich habe mit den Assets von Xcode 6 im Vergleich zu Bildern herumgespielt, als mir etwas aufgefallen ist sehr Interessant: Wir können jetzt Vektorbilder in ihnen angeben (siehe im Bereich Dienstprogramme, nachdem Sie Images.xcassets ausgewählt haben).

Ich habe eine kleine App (mit einem großen UIImageView) mit einem .SVG-Image (hat nicht funktioniert), dann mit einem .EPS (hat auch nicht funktioniert) und schließlich mit einem .PDF versucht. Es hat funktioniert! Nun, obwohl ich das Bild gesehen habe, schien es pixelig und nicht vektorisiert zu sein.

Wie es scheint, bereitet Apple den Weg für Vektorikonen/-bilder. Keine zig Millionen Versionen von App-Symbolen, keine "@ 2x" -Bilder mehr. Aber kann irgendjemand diese Funktion freischalten?

72
Jean Le Moignan

Hier sind einige meiner Gedanken nach einigen Experimenten mit Vektor-Assets:

1. Kompilierzeitunterstützung

Nach mehreren Versuchen glaube ich, dass dies nur eine Unterstützung für die Kompilierungszeit ist. Xcode generiert alle 1x, 2x und 3x Images zur Kompilierungszeit. Das heißt, es funktioniert mit älteren iOS-Versionen. Gleichzeitig bedeutet dies, dass es sich im endgültigen Build immer noch um ein PNG-Format handelt und Sie kein verlustfreies Bild aus der Vektordatei erhalten können.

2. Warum PDF anstelle von SVG oder anderen Formaten

Für SVG und andere Formate enthält das Vektorbild keine tatsächlichen Größenangaben, während PDF Größenangaben enthält. Ich denke, Xcode 6 verwendet die Größeninformationen in PDF als tatsächliche Anzeigegröße und generiert dann 2x 3x Dateien aus dem Vektorbild.

Size info in PDF

3. Dateigröße von PDF spielt keine Rolle

Anfangs befürchten wir, dass PDF viel größer sein wird als PNGs. Wir haben versucht http://smallpdf.com/ zu komprimieren und es funktioniert ziemlich gut. Aber wenn die ursprüngliche PDF -Datei, wie ich bereits sagte, nicht im Build enthalten ist, spielt die Dateigröße von PDF keine Rolle.

Wird diesen Beitrag weiter bearbeiten, wenn ich andere Dinge finde.

EDIT 14-09-25

@mredig erwähnte, dass für iOS Bitmaps zur Kompilierungszeit generiert werden, für OSX jedoch das Vektorbild in skalierbarer Form.

via: http://martiancraft.com/blog/2014/09/vector-images-xcode6/

58
Allen Hsu

So experimentieren Sie mit Vektorgrafiken im Asset-Katalog von Xcode 6:

  1. Erstellen Sie einen neuen Bildsatz.

  2. Wählen Sie einen leeren Bildbereich in Ihrem Bildsatz aus und ändern Sie das Popup im Attributinspektor in "Vektoren". Sie haben jetzt einen einzigen universellen Image-Slot.

  3. Ziehen Sie einen Vektor PDF in diesen Bereich.

Wo auch immer dieses Bild verwendet wird, wird es nun ohne Rasterung an seinen Kontext angepasst (z. B. eine Bildansicht mit fester Größe), wie in diesem Screenshot gezeigt:

enter image description here

[~ # ~] edit [~ # ~] Trotz dieser Antwort kann der größere PDF drawing war rastern. Aber jetzt, siehe https://stackoverflow.com/a/45623000/341994 : In Xcode 9 skaliert der Vektor PDF richtig, ohne zu rastern.

[~ # ~] edit [~ # ~] In Xcode 11 funktioniert diese Formel: Im Asset-Katalog müssen Sie das Skalierungs-Popup einstellen Klicken Sie im Menü auf Individuelle Skalen und fügen Sie das vektorbasierte Bild in den 1x-Steckplatz ein. Aktivieren Sie die Option Vektordaten beibehalten. Getan.

25
matt

mit diesem Online-Tool können Sie Ihre Bilder von SVG in PDF konvertieren

http://www.fileformat.info/convert/image/svg2pdf.htm

1- Bild hochladen

2- Breite auswählen: 24px, Höhe: 24px

3- Kopieren Sie in Ihr Xcode-Projekt

4- Gehen Sie zu Images.xcassets

5- Klicken Sie mit der rechten Maustaste und erstellen Sie einen neuen Bildsatz

6- Wählen Sie im rechten Bereich (Attributinspektor)

7-Typen in Vektor ändern

8- Ziehen Sie Ihr PDF-Bild dorthin und legen Sie es dort ab

9- Verwenden Sie es in Ihrem Projekt

22

ein Tipp: Erstellen Sie PDF @ 2x Auflösung und Dateiname mit @ 2x ([email protected]) und Sie erhalten perfekte Bilder zum Scharfzeichnen und Kontrastieren, speziell für iPad 2 und Mini. - enter image description here

7
Roman Bambura

Ich erstelle einfach eine benutzerdefinierte Schriftart mit Sagen, Symbolen oder sogar App-Logos und benutze sie auf diese Weise und ziehe sie in meine App. Ich kann dann ganz einfach die Schriftgrößen für Geräte und Bildschirmauflösungen anpassen.

Wenn Sie nach einer Antwort auf die Frage suchen: "Wie kann ich Vektorgrafiken in meiner iOS-App verwenden und sie immer perfekt skalieren?" , dann kann ich UIImage+PDF from https://github.com/mindbrix/UIImage-PDF

Ich finde das funktioniert absolut genial. Anstatt alle Bilder im PNG-Format in drei verschiedenen Auflösungen zu haben, habe ich jetzt für jedes Bild eine kleine Datei PDF). Diese kann ich folgendermaßen anzeigen:

// Objective C:
self.icon.image = [UIImage imageWithPDFNamed:@"icon.pdf" fitSize:self.icon.frame.size];

// Swift:
icon.setImage(UIImage(PDFNamed: "icon.pdf", fitSize: icon.frame.size))

Zusätzlich zu fitSize:, Es gibt auch atWidth:, atHeight und atSize:.

Ich benutze UIImage+PDF für alle Bilder, die vektorisiert werden können, und verwenden Sie PNGs nur für Fotos.

Ich führe meine PDF Dateien durch so etwas wie http://smallpdf.com/compress-pdf , um die kleinste Dateigröße für sie zu gewährleisten.

Erik

3

In Fällen, in denen Sie App-Symbole erstellen, wird PDF nicht funktionieren. Vielleicht möchten Sie sich ein Projekt ansehen, das ich gerade erstellt habe: Speculid . Es kann PNG, PDF usw. aus Quellbildern einschließlich SVG-Dateien erstellen. Feedback wäre sehr dankbar.

1
leogdion