![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 25.10.2004
Beiträge: 38
|
Hallo,
ich wundere mich gerade eben über die BufferedImage-Klasse! Es ist so nämlich: Ich habe ein BufferedImage-Array der länge 16. In jedem Arrayfeld ist nun eine Instanz der BufferedImage Klasse (je ein bild Da mir der Pixelgrabber "verfälschte" Bilddaten zurückgibt, gehe folgendermassen vor: ich hole mir von jedem BufferedImage ein WritableRaster, von diesem dann ein DataBuffer (in meinem Fall speziell DataBufferByte). Ven dem DataBufferByte erhalte ich per getData() ein byte-Array, wo die Pixeldaten drin sind. So weit so gut. Nun verhält sich das ganze recht komisch! Egal von welchem BufferedImage aus dem Array-Feld ich das DataBufferByte erhalte, ist das daraus resultierende byte-Array IMMER gleich (alle Pixelwerte stimmen jeweils überein) und enthält ALLE Bildedaten von allen BufferedImages hintereinandergehängt. Nun kann ich zwar (nachdem ich dieses Verhalten rausgefunden habe) die Pixeldaten für jedes Bild gezielt aus dem byte-Array rauskopieren, aber denke dass das nicht so gewollt ist (zumindest war meine Annahme, dass in jedem BufferedImage nur die Bilddaten drin sind, die zu diesem auch gehören, und nicht, dass alle Bilddaten in alle BufferedImges drin sind)! Ist es evtl. sogar ein BUG??? wenn es ein BUG ist, wär es ja Blöd, wenn ich dass so jetzt implementiere, und bei nachsten update (oder Java5... benutze gerade Version 1.4.2), dieses Verhalten korrigiert wird, dann geht meine Routine ja nicht mehr! Hat da jemand Erfahrungen damit, und weiß jemand den Grund, warum das so ist und ob es so sogar auch sein soll? Gruß, alekz |
|
|
|
|
|
Nach oben #2 |
|
Sesselkleber
Registriert seit: 17.01.2005
Beiträge: 567
|
Hallo Alekz!
Ich arbeite des öfteren mit Buffered Images, auch in Arrays. Probleme habe ich bisher noch keine gehabt. Was genau hast du denn vor? Vielleicht läßt sich das Problem anderweitig umgehen? Magst du ein wenig Code zeigen damit man dran rumprobieren kann? Gruß Sparrow |
|
|
|
|
|
Nach oben #3 |
|
Benutzer
Registriert seit: 25.10.2004
Beiträge: 38
|
Hallo sparrow,
der code: PHP-Code:
zur Info: .dcm Datei sind medizinische Dateien, die Metadaten und Bilddaten enthalten. Dabei können in einer .dcm-Datei mehrere Bilder enthalten sein. Meist sind es Graustufenbilder. Im Anhang findest du die Datei "MR-MONO2-8-16x-heart.dcm". Diese enthält 16 Graustufenbilder, die jeweil 256x256 Pixel messen, wobei jedes Pixel 8Bit Farbtiefe hat. (dcm-Dateien kann man sich z.B. mit dem Sante Viewer anschauen (auch die Metadaten Die library pixelmed.jar (http://www.dclunie.com/pixelmed/soft...e/pixelmed.jar ) holt mir aus mit "bImgs = source.getBufferedImages();" aus einer .dcm-Datei die Pixeldaten heraus und gibt diese mir in einem Array aus BufferedImages zurück. Wenn ich mir die BufferedImages anzeigen lasse, dann sehe ich, dass dort jeweil unterschiedlich Bilder drin sind. Wenn ich aber, wie oben zu sehen ist, die Pixeldaten in ein byte-Array hole, dann genügt es merkwürdigerweise diese aus dem ersten (oder zweitem, oder drittem, ...) herauszuholen. In dem Bytearray sind dann ALLE Bilder drin, die hintereinandergereit sind. Das sieht man zum Beispiel, wenn ich die länge des byte-Array zurückgeben lasse. Das zeigt dann auch nämlich die zahl an, die sich errechnen lässt mit width*heigth*frames. Der Code oben ist nur ein Aussschnitt. Zwischendurch habe ich mir zu testzwecken die BufferedImages anzeigen lassen, und die Daten in dem Byte-Array nutze ich, um die Bilder im JPEG2000 Format zu speichern. kannst du alles nachvollziehen? wenn nicht, dann frag einfach. Lieben Gruß, alekz |
|
|
|
|
|
Nach oben #5 |
|
Benutzer
Registriert seit: 25.10.2004
Beiträge: 38
|
Hallo,
die Klasse SourceImage liegt in der Bibliothek pixelmed.jar. dabei sieht getBufferedImages folgendermassen aus: PHP-Code:
hier ein auszug der Funktion, der interressant für meine Bilder ist (hier wird imgs gefüllt PHP-Code:
imgs[frame]=createByteGrayscaleImage(width,height,data,offset ); diese Funktion sieht folgendermassen aus: PHP-Code:
Vielen dank für deine Mühe, alekz |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem E-Mails zu senden | Jann Hendrik | Plauderecke | 7 | 25.05.2007 21:37 |
| Logisches Problem beim einsatz von Ereignissen | Prophet | Allgemeine Java-Programmierung | 19 | 05.06.2006 22:08 |
| BufferedImage bemalen - Vorgehensweise? | Sayang | Desktop-Applikationen und Grafik | 5 | 11.05.2006 15:14 |
| Problem mit Cookie und Reloads... | Bookworm | PHP-Programmierung | 10 | 13.04.2006 12:09 |
| OSX + Eclipse 3.1 Problem | bacarni | Eclipse | 3 | 29.07.2005 21:19 |