Stellen Sie JPG weißer hintergrund transparent
Ich bin laden Sie einige Bilder und ich will von PNG zu JPG für eine kleinere Datei Größe. Allerdings als JPG-es gibt keine Transparenz-Informationen, so der hintergrund des Bildes zeigt sich als weiße.
Wie kann ich diesen weißen hintergrund transparent sein, sobald ich laden meine Bilder?
Vielen Dank im Voraus
Setzen Sie einfach alle weißen Pixel werden transperant in deinem code? Ich nicht empfehlen, mit weiß allerdings.
Doppelte Frage? stackoverflow.com/q/12598912/2266191 JPEG erlauben keine Transparenz.
Sie sollte stick, um PNGs in Flash. Es ist tatsächlich schneller für Flash zum Rendern von PNG als JPG (das klingt seltsam angesichts PNG mit einem zusätzlichen Kanal, aber das ist das, was Adobe hat in der Vergangenheit gesagt)
Flash kann auch komprimieren von pngs besser/mehr als die JPG ' s, was eine kleinere Dateigröße.
Wenn Ihr png ' s sind so groß, dass man vielleicht etwas falsch. Sind Sie versuchen, verwenden Sie ein Fireworks-native png ohne Export, zum Beispiel?
Doppelte Frage? stackoverflow.com/q/12598912/2266191 JPEG erlauben keine Transparenz.
Sie sollte stick, um PNGs in Flash. Es ist tatsächlich schneller für Flash zum Rendern von PNG als JPG (das klingt seltsam angesichts PNG mit einem zusätzlichen Kanal, aber das ist das, was Adobe hat in der Vergangenheit gesagt)
Flash kann auch komprimieren von pngs besser/mehr als die JPG ' s, was eine kleinere Dateigröße.
Wenn Ihr png ' s sind so groß, dass man vielleicht etwas falsch. Sind Sie versuchen, verwenden Sie ein Fireworks-native png ohne Export, zum Beispiel?
InformationsquelleAutor Josh Brittain | 2013-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehe ich davon aus, das Sie ändern möchten die weißen Pixel, transparente Pixel zur Laufzeit. Zunächst werde ich nur sagen, dass die BESTE Antwort ist , ist nur das PNG-format verwenden. Meine Meinung ist, dass es so etwas wie diese zur Laufzeit ist keine gute Lösung. Wenn Sie haben, dass viele Bilder, die die Datei auf die Größe ankommt, dann ist die Laufzeit der Verarbeitung bringt es, die eigenen negativen einer langen pause, während der Verarbeitung der Bilder.
Ich persönlich würde zu erkunden, was ich tun konnte, um die Größe von PNG-Dateien, und würde wahrscheinlich NIE verwenden Sie eine Lösung wie diese.
Jedoch, wenn Sie diesen Weg zu gehen wählen, was Sie tun müssen, ist dieses :
Konvertieren Sie das Bild in ein BitmapData-mit einem alpha-Kanal.
Schleife durch die BitmapData und machen diese Pixel transparent.
oder
threshold()
Methode der BitmapData.Als jemand erwähnte in den Kommentaren für Ihre Frage, mit weiß als hintergrund Farbe ist nicht eine gute Idee, wie ALLE weißen Pixel transparent gemacht werden, nicht nur der hintergrund lieben.
So dass die Wahl eine Farbe, die nicht in der palette eines dieser Bilder ist das, was Sie möchten, als hintergrund verwenden Farbe
Als ein Kommentator erwähnt, die
threshold()
- Methode der BitmapData-würde wohl am besten funktionieren.Wenn Ihr den ersten Punkt, es gibt die Schaffung eines BitmapData-mit einem alpha-Kanal. Ja, die Schwelle, würde auch funktionieren.
InformationsquelleAutor prototypical
JPG (Technisch, JPEG File Interchange Format) - Dateien, die, wie man von den meisten Browsern und Grafik-Anwendungen, unterstützen nicht die Speicherung von einem alpha-Kanal mit dem Bild wie PNG nicht. Abhängig von Ihrer Anwendung, möchten Sie vielleicht zu speichern, eine separate schwarz-und-weiß "Bild" - Datei, die die Transparenz-Maske für die JPG-Datei, und verwenden Sie die pair-Mädchen. Es gibt Erweiterungen auf das format, das verwendet werden kann in individuelle software, aber Sie werden nicht verstanden anderswo.
Aber zuerst, stellen Sie sicher, dass JPG ist wirklich, was Sie verwenden möchten. JPG eignet sich nur für die "fotografische" Bilder, die don ' T haben in der Regel Transparenz-Masken (obwohl es sicherlich Ausnahmen). Wenn das Bild ist mehr Symbol/Zeichnung-gefällt, dann ist es wahrscheinlich, dass JPG nicht viel kleiner als die PNG sowieso, und haben hässliche aliasing-Artefakte, so dass nur die Optimierung der PNG wird Ihnen bessere Ergebnisse.
Ja, es gibt wahrscheinlich einige andere Problemumgehungen für das, was er tun will: zum Beispiel, Verringerung des dynamischen Bereichs des ursprünglichen Bildes, so dass es nicht weiß, dann behandeln Sie alle-weiß als transparent. Aber wie Sie darauf hinweisen, viele exakte Pixelwerte nicht überleben die DCT, so wird es einige fast-weiße Flecken in den transparenten Bereich und vielleicht ein paar winzige Löcher in das Bild. JPG ist einfach nicht das richtige Werkzeug für den job. Also meine Empfehlung entweder stick mit PNG oder verwenden Sie eine separate PNG nur für die Maske.
InformationsquelleAutor Lee Daniel Crocker
Möchten Sie vielleicht zu prüfen, die Einbindung der png ' s in ein Flash-Bibliothek, dann exportieren als swf-Datei. Sie können dann mithilfe von Flash komprimieren Sie Ihre png mit der verlustbehafteten JPEG-Algorithmus, aber es wird noch immer den alpha-Kanal. Dies könnte dazu führen, viel kleinere Datei Größen, aber mit dem Vorteil der Beibehaltung der 8-bit-alpha-Kanal (jedes pixel hat 256 Transparenz-Stufen).
Durch ausblenden einer bestimmten Farbe, erhalten Sie lediglich eine 1-bit-alpha-Maske (ein pixel ist entweder vollständig sichtbar oder vollständig ausgeblendet werden.) Sie können auch auf Probleme stoßen, wie wenn die Farbe im Bild entspricht der Hintergrundfarbe, löscht die Pixel des eigentlichen Bildes, das Sie anzeigen möchten.
Das andere problem mit der Verwendung einer Hintergrundfarbe in ein JPEG-Bild ist, dass die JPEG-Komprimierung verlassen Artefakte, besonders um die Ränder der Objekt-und der Hintergrundfarbe. Dies macht es schwierig, richtig zu maskieren einer bestimmten Farbe.
InformationsquelleAutor david.emilsson