Identifizieren, ob ein Png-Bild hat 100 Prozent transparenten Hintergrund
Bin ich zu schreiben versucht, einen code, wo bekomme ich eine png - /jpeg-Bild. Wenn es ein png-Bild, ich möchte prüfen, ob es hintergrund ist zu 100% transparent. Wenn ja, möchte ich hinzufügen, dass weiße hintergrund mit image magick.
Derzeit ich benutze image magick "identify-format" %A neue."png", die true oder false zurückgibt, die auf Transparenz beruht.
Jedoch, gibt es eine Möglichkeit zu finden, die aus 100 Prozent hintergrund-Transparenz mithilfe von image-magick oder java-code?
InformationsquelleAutor Mayank_Thapliyal | 2014-05-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie Durchlaufen jeden pixel im Bild und prüfen Sie, ob das höchstwertige byte (das ist der alpha-channel) gleich null ist (wie bereits hier).
Mach es irgendwie so:
Ich habe in der alpha-Werte und für die tranparent Bild,es war 6, und für die nicht transparente, es war 255. ALSO die Methode erfordert wenig Feintuning, aber seine Arbeitsmethoden in Ordnung. Vielleicht prüfen Sie, ob alpha-255 ist dann true zurück, sonst false
Ich habe es mit
BufferedImage img = ImageIO.read(new URL("http://www.cityrider.com/fixed/43aspect.png"));
in der zweiten Zeile und es funktioniert Prima, true zurückgeben. Vielleicht ist dein Bild nicht wirklich alpha? Dann möchten Sie vielleicht zu prüfen, ob es weniger als ein Schwellenwert ist. (Also nicht vergleichen != 0 in der if-Anweisung, aber check <= 10 oder etwas ähnlichem Wert)Die Prüfung für das alpha auf 255 und dann true zurückliefern, ist allgemein eine schlechte Idee, aus zwei Gründen: Erstens: Auch auf völlig transparente Bilder, die Sie haben zu iterieren über das gesamte Bild, bevor Sie in der Lage, beenden Sie die Schlaufen führen-immer mit dem worst-case-Szenario, zweitens, das ist viel wichtiger: Wenn Sie den Test ein Bild mit Pixeln, die nicht vollständig alpha, wird es auch scheitern. Ich denke, die Antwort liefert alles, was Sie brauchen, bilden einen guten Ansatz, um Ihre spezifischen problem. Nur zwicken Sie nach Bedarf.
Absolut richtig. Ich würde Stimmen du bis, aber ich habe nicht benötigten Ruf level . 🙂 Vielen Dank dennoch für die Hilfe
InformationsquelleAutor Prior99