Gibt es ein schnelles Werkzeug, um ein Bild in 2-Bit pro Pixel rohe Bitmap-Daten zu konvertieren?Wie konvertiere ich das Bild in 2-Bit pro Pixel?
Antwort
können Sie verwenden Imagemagick:
, wenn Sie nur ein Graustufenkanal:
convert image.png -depth 2 data.gray
Wenn Sie 2 Bits für jeden roten, grünen und blauen Kanäle wollen:
convert image.png -depth 2 data.rgb
Zusätzlich zu David's command empfehle ich, dass Sie die -size
sowie eine der beiden:
convert -depth 2 -size 1x<number-pixels> f.png f.gray
convert -depth 2 -size <number-pixels>x1 f.png f.gray
da dies die einfachsten Ausgaben sind, die danach verwendet werden.
Das Problem ist, dass Bits nicht adressierbar sind, also müssen sie irgendwie in Bytes organisiert werden.
Ich habe nicht die Dokumentation für diese, aber ein einfaches Beispiel zeigt das Muster gefunden:
printf "%10s" | sed 's/ /\xFF\x00/g' > f.gray
convert -depth 8 -size 1x20 f.gray -depth 2 g.gray
hd g.gray
convert -depth 8 -size 2x10 f.gray -depth 2 g.gray
hd g.gray
convert -depth 8 -size 10x2 f.gray -depth 2 g.gray
hd g.gray
convert -depth 8 -size 20x1 f.gray -depth 2 g.gray
hd g.gray
Wir haben eine Eingabedatei mit Bits erstellt 1 0
10 mal wiederholt. Die Umstellung auf 2-Bit-Tiefe gibt:
00000000 c0 00 c0 00 c0 00 c0 00 c0 00 c0 00 c0 00 c0 00 |................|
*
00000014
00000000 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 |..........|
0000000a
00000000 cc cc c0 cc cc c0 |......|
00000006
00000000 cc cc cc cc cc |.....|
00000005
So scheint es, dass, wenn Tiefe < 8, dann ImageMagick zeilenweise und 0 Pads fehlenden Bits arbeitet.
Ich habe mit 1-Bit pro Pixel getestet, und diese Theorie war konsistent.
Getestet mit ImageMagick 6.7.7-10, Ubuntu 14.04.
- 1. Pixel pro Pixel Bild, transparent zu schwarz
- 2. Wie konvertiere ich Twips zu Pixel in .NET?
- 3. Wie das Bild von (1 * 66) Pixel-
- 4. jpg Bits pro Pixel
- 5. Wie kann ich JPEG-Daten pro Pixel lesen und schreiben?
- 6. Ermitteln der Skalierung in Metern pro Pixel
- 7. Konvertiere lat/lon in Pixel und zurück
- 8. Wie konvertiere ich eine Höhe eines in vh angegebenen Elements in Pixel?
- 9. Wie beschneide ich ein Bild pro Beschneidungspfad?
- 10. Wie kann ich jedes Pixel in einem GIF-Bild durchlaufen?
- 11. Wie konvertiere ich ein Bild als Zeichenkette in PNG-Datei
- 12. Wie konvertiere ich Byte-Array zu Bild in Javascript
- 13. Konvertiere ein Bild in XAML?
- 14. Wie bekomme ich die diagonalen Pixel in einem Bild?
- 15. das Bild in Bitmap bekommen aber nur schwarze Pixel zurück
- 16. Ein Bild Pixel für Pixel in Ruby lesen
- 17. Pro Pixel softmax für vollkonvolutionelles Netzwerk
- 18. Optimierung pro Pixel Mischen auf Android Bitmaps
- 19. set css übergang zu pixel pro sekunde
- 20. Wie konvertiere ich eine Menge von Polygonen in eine Bitmap?
- 21. Konvertiere Zeichenkette in Bild in Python
- 22. Wie speichere ich ein Bild aus einem RGB-Pixel-Array?
- 23. Konvertiere ein Bild in Ziffern mit PHP?
- 24. jQuery UI: Wie setze ich die (blinde) Animationsgeschwindigkeit? (Wie in "Pixel pro Sekunde")
- 25. Schwerpunkt der Pixel in Graustufen Bild
- 26. Xcode Bild/Pixel Manipulation Echtzeit
- 27. Warum sind die Bytes pro Byte mehr als die Bytes pro Pixel mal die Breite?
- 28. Wie konvertiere ich das in JavaScript von PHP?
- 29. Wie konvertiere ich die Zeichenfolge in das indische Geldformat?
- 30. Wie konvertiere ich ein DateTime-Objekt in das YYMMDD-Format?
Wie genau ist die Ausgabe organisiert? Es scheint mehrere Bits pro Byte zu geben, aber ich verstehe nicht genau wie. –