Windows Bitmaps

Status
Nicht offen für weitere Antworten.

banshee

Bekanntes Mitglied
hallo,

ich möchte mit java gerne ein Programm schreiben, dass Windows Bitmaps bearbeitet. Also ich wollte einer Funktion einen Eingabestring übergeben und dann die Bitmap öffnen und bearbeiten. Welches Java-Objekt brauche ich jetzt um so Sachen wie bpp oder Bildgröße auszulesen?

Danke im Voraus :)
 

The_S

Top Contributor
Da es recht ärgerlich ist, wenn man die Forensuche verwendet und ständig auf Threads stößt, bei denen steht "Bitte die Forensuche verwenden", sollte wenigstens zu so einem Thread verlinkt, oder ein paar Stichwörter genannt werden (imho). Die da wären ImageIO zum Lesen, BufferedImage für die Infos.
 

banshee

Bekanntes Mitglied
danke,

bin noch neu in Sachen java, deshalb wusste ich nicht wonach ich suchen sollte. Hab mir die Klasse imageIO auch schon in der api angeguckt. An die Maße kommt man ja per getHeight(), getWidth() relativ leicht ran aber zu den BBP hab ich noch nichts gefunden.
 

The_S

Top Contributor
ach, bpp ... hab jetzt Bitmaps gelesen und dabei an .bmp gedacht. BPP kenne ich so eigentlich gar nicht. Evtl. kannst du da mit der JAI-API von sun ran kommen. Ansonsten gibts evtl. irgendwo ne externe Lib zur Bearbeitung deser Images.
 

banshee

Bekanntes Mitglied
Ja, das hab ich mittlerweile hinbekommen. Die imageIO hat eine Funktion, die ein ColorModel liefert und da kann man diese ganzen Infos abfragen.

Dafür hat sich mir ein neues Problem aufgetan :)

Und zwar möchte ich ein paar Daten von dem Bild jetzt wieder in eine Datei schreiben. Das ganze soll dann bitweise erfolgen. Also beispielsweise will ich für die Länge und Breite der BMP-Datei (in Pixeln) genau jeweils 16 Bit schreiben.
Wie mache ich das am klügsten? Ich habe jetzt an einen ByteArrayOuputStream und einen FileOutputStream gedacht, aber wie bekomme ich dann int-Werte in Byte-Darstellung? Muss ich mir da selber eine Funktion schreiben, gibts schon eine Klasse, die das liefert oder macht man es am besten ganz anders?
 

banshee

Bekanntes Mitglied
okay ByteArrayOutputStream ist Blödsinn. Ich denke doch eher an eine eigene Klasse BitString gedacht, die mir bitweise Strings erzeugt und die dann per FileWriter geschrieben werden.

Ist das gut oder gehts noch eleganter? :)
 

banshee

Bekanntes Mitglied
Also,

öffnen will ich BMP Dateien, was bisher auch wunderbar klappt.
Auf die BPPS (= Bits Per Pixel) bin ich nur gekommen, weil ich die mit auslesen wollte, ist aber kein eigener Dateityp.

Und schreiben will ich jetzt in eine stinknormale txt-Datei. Und da bin ich mir nicht so sicher, ob ich das so wirklich elegant mache. Das Problem sind die festgesetzten Bitwerte.

Beispiel für die Bildbreite: Die soll auf jeden Fall mit 16 Bits geschrieben werden. Wenn das Bild jetzt aber nur 128 Pixel breit ist (was ja mit 8 Bit kodiert werden kann), dann würde ich mit meiner BitString klasse den int-Wert 128 in einen String umwandeln ("1000 0000"), dann per FileWriter acht mal 0 und dann den 8-Bit-Code in die Datei schreiben. (weil der Code insgesamt 16 Bit groß sein soll).
 

The_S

Top Contributor
Ah, ok. Die Abkürzung BBP kannte ich bisher nicht. Aber jetzt komme ich so langsam mit ;) .

Da ne Bitmap ja nie komprimiert wird, kannst du das doch ganz leicht an der breite und höhe in pixeln und der Dateigröße selbst berechnen!?
 

banshee

Bekanntes Mitglied
Ich hab noch eine bessere Idee. Eleganter ist das doch bestimmt, wenn ich die Datei byteweise schreibe (dann sind die Bits auch nicht direkt einsehbar).

Allerdings weiß ich dann wieder nicht, wie man einen int als Bytes darstellen kann. Der Datentyp byte ist ja sofern ich weiß irreführend, weil er nur die gleiche Größe wie ein Byte hat, aber nicht die selbe Darstellung.
 

banshee

Bekanntes Mitglied
hallo,

ich hänge gerade leider wieder an anderer Stelle:

Wie gesagt wird das Bild ja nur per 1,4 oder 8 Bits per Pixel eingelesen. Ich habe dann abfragen lassen, wieviele Farben im Bild vorkommen und diese als int in einem Vector gespeichert, funktioniert auch alles ganz wunderbar.

Das Problem macht mir nur die Methode getRGB() eines BufferedImage, weil die die Farben ja in einem int speichert. Also beispielsweise hab ich ein Bild mit 2 Farben, weiß und rot. Die speichert er mir dann als -1 (1111 1111 1111 1111 1111 1111 1111 1111) und -65536(1111 1111 1111 1111 0000 0000 0000 0000). Wie mache ich das jetzt, wenn ich für die Farbe jeweils nur 4 Bit schreiben will?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R -jar der Windows-Registry hinzufügen Allgemeine Java-Themen 1
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
izoards JAR als Windows Service mit Appache Procrun (prunsrv) Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
M TomEE auf Windows Server 2016 installieren Allgemeine Java-Themen 4
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
T Java Windows sounds erkennen Allgemeine Java-Themen 1
P Java als Windows Dienst Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
M Checkliste mit erweiterbaren Einträgen, Baumstruktur, wie Windows Explorer Navigation Allgemeine Java-Themen 2
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
R JDK installieren JDK / Maven auf Windows 10 installieren Allgemeine Java-Themen 9
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
D Jsch nur für Windows? Allgemeine Java-Themen 2
X JDK installieren Weiß jemand, wie ich GCJ (WINDOWS) installieren und anwenden kann? Allgemeine Java-Themen 11
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
D Konsoleneingabe ist in Windows CMD nicht sichtbar Allgemeine Java-Themen 4
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
F Windows Umlaute Allgemeine Java-Themen 15
T Windows-Kontextmenü Eintrag hinzufügen? Allgemeine Java-Themen 3
O Socket-Unterschiede zwischen Windows und Ubuntu Allgemeine Java-Themen 2
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
M Swing Windows und Ubuntu Allgemeine Java-Themen 4
H JFileChooser soll NUR Windows-Netzwerkumgebung anzeigen Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
W Windows (Service) Hooking Allgemeine Java-Themen 8
M Java auf Linux und Windows Allgemeine Java-Themen 6
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
N Input/Output Mit Windows 7 erzeugtes zip-File in Java 7 öffnen Allgemeine Java-Themen 5
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
njans Windows Verknüpfung von Icon Allgemeine Java-Themen 2
P windows mit java bedienen Allgemeine Java-Themen 8
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P .Jar Datein Windows Konsole zugewiesen Allgemeine Java-Themen 3
C Encoding Problem Windows Allgemeine Java-Themen 9
L Input/Output ProcessBuilder und Windows - Konsole verbergen? Allgemeine Java-Themen 5
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
A Nach Benutzerwechsel mit anderem Account in Windows anmelden Allgemeine Java-Themen 8
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Windows Konsolenbefehle Allgemeine Java-Themen 3
Z Probleme bei Stringvergleichen (Windows/Linux) Allgemeine Java-Themen 10
B Windows Shutdown abfangen Allgemeine Java-Themen 10
E CMD Registry Key für Windows 7? Allgemeine Java-Themen 9
TiME-SPLiNTER vlcj und Windows Allgemeine Java-Themen 15
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
Y MenuBar -> Windows / Mac OS X Allgemeine Java-Themen 2
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
R Windows - User Passwort ändern Allgemeine Java-Themen 2
F java prog als windows-dienst. Erfahrungen? Allgemeine Java-Themen 2
R Dateien vom Windows-Explorer zum Programm senden Allgemeine Java-Themen 21
H Standard Windows-Druck-Dialog Allgemeine Java-Themen 2
S Windows "öffnen mit..." Allgemeine Java-Themen 4
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
P Windows Media Player starten / finden Allgemeine Java-Themen 2
D Windows-Konsole auslesen - Zeichenkodierung Allgemeine Java-Themen 4
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
Q .jar wird mit cmd gestartet - Zuordnung von Dateitypen ändern (Windows 7) Allgemeine Java-Themen 7
G jad JDK1.6 Windows 7 Allgemeine Java-Themen 2
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
O Jar-Datei auf Windows 98 Allgemeine Java-Themen 6
K Windows Fehlerkanal -> Ausgabe in Datei Allgemeine Java-Themen 6
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
A JavaVM Zeit Windows 7 Allgemeine Java-Themen 9
P USB Temperatursensor auslesen Windows Allgemeine Java-Themen 7
T Mac OS X <--> Windows XP Portierungsprobleme Allgemeine Java-Themen 7
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben