![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 13.03.2008
Beiträge: 5
|
Hallo Leute,
Code:
BufferedImage image = reader.read( 0 );
if( image.getRaster().getSampleModel().getSampleSize( 0 )>8 ) {
image = reduceSampleSize( image );
}
Ich habe die letzten Stunden damit verbracht eine Implementierung von reduceSampleSize() zu finden. Meine aktuelle liefert ein stark verrauschtes Bild Code:
private BufferedImage reduceSampleSize( BufferedImage image )
{
ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier.createFromBufferedImageType( BufferedImage.TYPE_INT_RGB );
BufferedImage image2 = typeSpecifier.createBufferedImage( image.getWidth(),image.getHeight() );
WritableRaster writableRaster = image2.getRaster();
writableRaster.setRect( image.getData() );
return image2;
}
Wißt ihr wie man das richtig macht? Gruß, simon |
|
|
|
|
|
Nach oben #2 |
|
Neuer Benutzer
Registriert seit: 13.03.2008
Beiträge: 5
|
ich habe euch mal den Sourcecode hochgeladen:
http://www.file-upload.net/download-...r.zip.zip.html |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 17.08.2005
Beiträge: 424
|
Eigentlich hab ich nicht viel mit Bildmanupulation via Java zu tun, aber nach bisschen rum probieren kam ich auf diese Lösung;
Code:
private BufferedImage reduceSampleSize(BufferedImage image) {
ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier
.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB);
BufferedImage image2 = typeSpecifier.createBufferedImage(image
.getWidth(), image.getHeight());
WritableRaster writableRaster = image2.getRaster();
writableRaster.setRect(image.getData());
return image2;
}
|
|
|
|
|
|
Nach oben #5 |
|
Neuer Benutzer
Registriert seit: 13.03.2008
Beiträge: 5
|
Das ist der Code mit dem ich angefangen habe(!) und der funktioniert leider nicht mit dem png-Bild in der Zipdatei.
Ich habe es jetzt aber raus. Ecplipse hat mir die richtige Funktion vorgeschlagen, nicht image.getRaster().setRect(...) sondern einfach image.setRGB(...). Die Methode sieht jetzt so aus: Code:
private BufferedImage reduceSampleSize( BufferedImage image )
{
final int width = image.getWidth();
final int height = image.getHeight();
BufferedImage image2 = new BufferedImage( width,height,BufferedImage.TYPE_INT_RGB );
for( int w=0;w<width;w++ ) {
for( int h=0;h<height;h++ ) {
image2.setRGB( w,h,image.getRGB( w,h ) );
}
}
return image2;
}
simon Geändert von simon.void (17.03.2008 um 13:02 Uhr). |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| x und y Wert nach Pixel umrechnen | Byrel | Gesuche | 7 | 22.11.2006 17:57 |