PNG 32 Bit zu 16Bit konvertieren...

Status
Nicht offen für weitere Antworten.

Patrick.

Mitglied
Guten Abend die Damen und Herren,
ich versuche ganze Zeit seit heute Morgne um schon ein 32 bit PNG in ein 16Bit zu konvertieren. Aber leider ohne erfolg. Habe alles tausendmal umgeschrieben und nichts klappt. Habe auch versucht den CollorSpace auf TYPE_USHORT_565_RGB zu setzen, ohne Erfolg. Gab direkt ne Exception... Vllt kennt ihr euch damit besser aus und habt ne Idee oder einen Ratschlag.

Mit freundlichen Grüßen
Patrick.

Java:
public static BufferedImage convert (BufferedImage img) {
		
		//Die Breite und Höhe braucht man immer
		int w = img.getWidth();
		int h = img.getHeight();
		
		//Einen AnfangsPunkt für den späteren gebrauch
		Point location = new Point(0,0);
		
		//Man braucht einen ColorSpace was auch 16bit hat
		//in dem Fall TYPE_USHORT_565_RGB!!!
		ColorSpace cs = ColorSpace.getInstance(BufferedImage.TYPE_USHORT_565_RGB);
		
		//dann die anzahl der Bits pro Kanel
		int[] nBits = {5, 6, 5};
		
		//Man braucht ein passendes ColorModel
		//Constructor:
		//ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType) 
		
		ComponentColorModel ccm = new ComponentColorModel(cs, nBits, false, false, Transparency.OPAQUE, 0);
		
		// das bandOffset benötigit man für  DataBuffer und für das Sample Mode
		int[] bandOffset = { 0, 1, 2 };
		
		//Einen DataBuffer für das spätere Raster
		DataBuffer datBuff = new DataBufferShort(16);
		
		// Dann braucht man ein Raster
		WritableRaster raster = Raster.createInterleavedRaster(datBuff, w, h, h, 3, bandOffset, location);
		
		//Ein Array um das neue Raster zu speichern
		short[] shortData = ((DataBufferShort) raster.getDataBuffer()).getData();
		
		//Ein RasterObjekt um das alte Raster zu speichern
		Raster originalRaster = img.getData();
		
		//Scannen
		int[] pixel = new int[4];
		int k = 0;
		for (int j = 0; j < h; j++){
			for(int i = 0; i < w; i++){
				//Die Pixel aus dem original holen und zwischenspeichern
				pixel = originalRaster.getPixel(i, j, pixel);
				//und neu schreiben
				shortData[k++] = (short) (pixel[0]);
				shortData[k++] = (short) (pixel[1]);
				shortData[k++] = (short) (pixel[2]);
			}
		}
		
		return new BufferedImage(ccm, raster, false, null);
	}

public static BufferedImage[] splitImage(BufferedImage img, int size) {  
		
		int c = img.getWidth() / size;  
		int r = img.getHeight() / size;
		int counter = c + r;
		
		int num = 0;  	
		//img = convert(img);

		
		System.out.println("IMG: " + img + "c: " + c + " r: " + r);

		BufferedImage imgs[] = new BufferedImage[c*r];  

		for(int y = 0; y <counter; y++) {  
				File file = new File("Test"+num+".png");
				imgs[num] = convert(img);
				Graphics g = imgs[num].createGraphics();
				g.drawImage(img, 0, 0, null);
				g.dispose();
				try {
					ImageIO.write(imgs[num], "png", file);
				} catch (IOException e) {
					e.printStackTrace();
				}
				System.out.println("IMG: " + imgs[num]);
				num++;  

		}  
		return imgs;  
	}
 

Patrick.

Mitglied
Als aller erstes sagt das er den Collorspace nicht kennt bzw. nicht findet.
Sobald man das aber auf ein CS_... irgendwas ändert klappt das.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Datentypen 2 8bit in ein 16bit in Java Allgemeine Java-Themen 16
B 16Bit Integer aus ByteArray im Little Endian Format Allgemeine Java-Themen 17
izoards doc to pdf Konvertieren... Allgemeine Java-Themen 43
M Java 8 nach Java 6 konvertieren Allgemeine Java-Themen 7
J Java zu C# konvertieren? Allgemeine Java-Themen 4
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
RalleYTN float in WORD konvertieren Allgemeine Java-Themen 1
RalleYTN JOGL Texture in BufferedImage konvertieren Allgemeine Java-Themen 1
C String zu Int konvertieren Allgemeine Java-Themen 9
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
RalleYTN Audiodatein(.ogg/.wav) in Text konvertieren Allgemeine Java-Themen 0
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
B .txt Datei in einen kompletten String konvertieren Allgemeine Java-Themen 20
C String in double[][] konvertieren! Allgemeine Java-Themen 5
R MS Word in PDF konvertieren Allgemeine Java-Themen 1
M ArrayList<Foo> in ein Foo[] konvertieren? Allgemeine Java-Themen 8
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
D Programm in JApplet konvertieren... Allgemeine Java-Themen 4
K Image zu BufferedImage konvertieren Allgemeine Java-Themen 9
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
H Input/Output Binäre Daten konvertieren, Output hat Zeilenumbrüche?? Allgemeine Java-Themen 9
S byte [] in string und zurück konvertieren Allgemeine Java-Themen 2
S Millisekunden in Zeitcode konvertieren. Unerwarteter Effekt..? Allgemeine Java-Themen 8
T JPG zu PNG konvertieren Allgemeine Java-Themen 3
P Tonspur aus Video extrahieren und konvertieren Allgemeine Java-Themen 2
R byte[] to String Konvertieren Allgemeine Java-Themen 14
A Input/Output Buffered Image zu Byte Array und zurück konvertieren Allgemeine Java-Themen 4
S Zahl konvertieren [Internationalisierung l10n, l18n] Allgemeine Java-Themen 4
L hunderstel Sekunden in mm:ss:hshs konvertieren Allgemeine Java-Themen 4
T Interger in String konvertieren Erklärung benötigt Allgemeine Java-Themen 11
R Moeglichst viele Datumsstrings in Date Objekte konvertieren? Allgemeine Java-Themen 3
Daniel_L RegEx: UBB in HTML konvertieren, Problem Verschachtelung Allgemeine Java-Themen 3
A Performance: byte[] in byte[][][] konvertieren Allgemeine Java-Themen 2
2 MP3 in Wav konvertieren. Allgemeine Java-Themen 5
K Zeichensatz in UTF8 konvertieren Allgemeine Java-Themen 7
T Konvertieren zu gültigen Dateinamen Allgemeine Java-Themen 10
S List<Double> oder Double[] in double[] zu konvertieren Allgemeine Java-Themen 6
B numerisch in alpanumerisch konvertieren Allgemeine Java-Themen 3
Z Uralt-Applet in JFrame Anwendung konvertieren Allgemeine Java-Themen 12
S Integer zu int konvertieren - JUnit Allgemeine Java-Themen 12
F Unicode zu ASCII konvertieren Allgemeine Java-Themen 5
P Sämtliche Zeichensätze nach UTF-8 konvertieren Allgemeine Java-Themen 6
B String in Hex konvertieren: Problem Allgemeine Java-Themen 9
F Code konvertieren Allgemeine Java-Themen 4
G Array/String aus Request wieder in Array konvertieren Allgemeine Java-Themen 2
M Wave file ins Ogg Format konvertieren! Allgemeine Java-Themen 3
A DOC in TIFF konvertieren Allgemeine Java-Themen 2
P word zu pdf konvertieren Allgemeine Java-Themen 5
G Konvertieren: Wikipedia-Formatierung -> HTML Allgemeine Java-Themen 5
cowabunga1984 Library um TIF in PDF zu konvertieren Allgemeine Java-Themen 2
S int nach Ascii konvertieren Allgemeine Java-Themen 2
F Wav to mp3 konvertieren Allgemeine Java-Themen 3
G Datum konvertieren Allgemeine Java-Themen 14
R Fehler in WindowsXP oder Java? - double in int konvertieren Allgemeine Java-Themen 10
G Benutzereingaben konvertieren(Exponentialfunktion) Allgemeine Java-Themen 9
K Object nach Vector konvertieren Allgemeine Java-Themen 3
T Musikdateien in ein anderes Musikdateienformat konvertieren Allgemeine Java-Themen 5
T ArrayList in String[] konvertieren. Allgemeine Java-Themen 3
M Value als String in beliebige Klasse konvertieren Allgemeine Java-Themen 18
G Bild von RGB in Grayscale konvertieren Allgemeine Java-Themen 2
T Datum konvertieren Allgemeine Java-Themen 3
R HTML Seiten in formatierte Textseiten konvertieren Allgemeine Java-Themen 3
R StringWriter konvertieren in einen String !!! Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben