Hallo Leute
Ich hab folgendes Problem
Mit anderen Worten, wie ich es glaube, kann er zwar das Bild laden aber nicht weiter verwenden. Oder er hat beim Laden Probleme.
Zum laden des Bildes verwende ich:
Wenn ich das Bild geladen hab, will ich es zuschneiden, das mache ich mit diesem Befehl
Der Fehler taucht hier auf
Das passiert mir aber nur bei Webstart.
Bei Netbeans läuft alles wunderbar.
Bei cmd (java -jar map3D.jar) stürzt das Program nach dem Ausführen ab. Ohne Fehlermeldung und einer erfolgreichen Meldung "ok".
Ach und bevor ich es vergesse...
Ich lade ein Tiff Bild. Um das zu ermöglichen benutze ich JAI_imageio Bibliothek. Diese ist im .jnlp eingebunden und sollte geladen werden.
Mein .jnlp sieht dabei so aus:
[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="file:/C:/NetBeansProjects/Map_3D/dist/" href="launch.jnlp" spec="1.0+">
<information>
<title>Mapdarstellung ALPHA</title>
<vendor>Evilion</vendor>
<homepage href=""/>
<description>Map</description>
<description kind="short">Mapdarstellung ALPHA</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se java-vm-args="-Djava.security.policy=applet.policy" initial-heap-size="250M" max-heap-size="500M" version="1.5+"/>
<property name="Xms" value="250M"/>
<property name="Xmx" value="500M"/>
<property name="j3d.rend" value="d3d"/>
<jar eager="true" href="Map_3D.jar" main="true"/>
<jar href="lib/postgresql-8.4-701.jdbc4.jar"/>
<jar href="lib/j3dcore-d3d_dll.jar"/>
<jar href="lib/j3dcore-ogl-chk_dll.jar"/>
<jar href="lib/j3dcore-ogl_dll.jar"/>
<jar href="lib/j3dcore.jar"/>
<jar href="lib/j3dutils.jar"/>
<jar href="lib/vecmath.jar"/>
<jar href="lib/clib_jiio.dll.jar"/>
<jar href="lib/clib_jiio_sse2.dll.jar"/>
<jar href="lib/clib_jiio_util.dll.jar"/>
<jar href="lib/clibwrapper_jiio.jar"/>
<jar href="lib/jai_imageio.jar"/>
</resources>
<application-desc main-class="map.Map">
</application-desc>
</jnlp>
[/XML]
Kann mir jamand helfen?
Ich hab folgendes Problem
Code:
java.lang.IllegalArgumentException: Width (2147483647) and height (-2147483648) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source)
at java.awt.image.BufferedImage.<init>(Unknown Source)
at map.Land.cropImage(Land.java:635)
at map.Land.<init>(Land.java:286)
at map.Map.createSceneGraph(Map.java:174)
at map.Map.init(Map.java:142)
at map.Map.main(Map.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Mit anderen Worten, wie ich es glaube, kann er zwar das Bild laden aber nicht weiter verwenden. Oder er hat beim Laden Probleme.
Zum laden des Bildes verwende ich:
Java:
//Lade das Bild von dem Kartenausschnitt
BufferedImage bufferedImage = null;
try {
//Lokal
//File file = new File("125.tif");
//URL url = this.getClass().getResource("/images/ortho2004_10.tif");
//File file = new File("ortho2004_10.tif");
//File file = new File(ClassLoader.getSystemResource("/image/ortho2004_10.tif"));
//Java WebStart
//File file = new File("pics\\land\\125.tif");
//File file = new File("pics\\land\\ortho2004_10.tif");
//bufferedImage = ImageIO.read(file);
bufferedImage = ImageIO.read(getClass().getResourceAsStream(
"/images/ortho2004_10.tif"));
System.out.println("Hab das TIF geladen, Boss");
}
catch (Exception e) {
System.out.println("Sorry boss I cant get any image loaded.");
}
Wenn ich das Bild geladen hab, will ich es zuschneiden, das mache ich mit diesem Befehl
Java:
//Erstell ein ImageComponent2D aus dem geschnittenem Bild
ImageComponent2D textImage = new ImageComponent2D(
ImageComponent2D.FORMAT_RGB,
cropImage(bufferedImage,
x, y, width, height));
Der Fehler taucht hier auf
Java:
public static BufferedImage cropImage(BufferedImage original, int left,
int top, int width, int height) {
//Das ausgeschnittene Bild
BufferedImage resizedImage = new BufferedImage(width, height, getType(
original.getColorModel())); //***<-FEHLER bei original.getColorModel()***
//Instanziere graphics2D Objekt um ins resizedImage hineinzuzeichnen
Graphics2D graphics2D = resizedImage.createGraphics();
//Setze Eigenschaften für das Rendering
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
//Wenn die Breite grösser als die Originalbreite ist, wird die Textur Bicubic
if (width > original.getWidth()) {
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
}
//Sonst Bilinear
else {
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
}
graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_DEFAULT);
//Zeichne das Bild aus dem Original mit der vorgegebenen Breite und Höhe
graphics2D.drawImage(original, 0, 0, width, height, left, top,
width + left, height + top, null);
System.out.println("Bild wurde geschnitten");
/*
File asdf = new File("C:\\temp\\asdf");
try {
ImageIO.write(resizedImage, "JPG", asdf);
}
catch (IOException ex) {
Logger.getLogger(Land.class.getName()).log(Level.SEVERE, null, ex);
}*/
return resizedImage;
}// end of cropImage()
Das passiert mir aber nur bei Webstart.
Bei Netbeans läuft alles wunderbar.
Bei cmd (java -jar map3D.jar) stürzt das Program nach dem Ausführen ab. Ohne Fehlermeldung und einer erfolgreichen Meldung "ok".
Ach und bevor ich es vergesse...
Ich lade ein Tiff Bild. Um das zu ermöglichen benutze ich JAI_imageio Bibliothek. Diese ist im .jnlp eingebunden und sollte geladen werden.
Mein .jnlp sieht dabei so aus:
[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="file:/C:/NetBeansProjects/Map_3D/dist/" href="launch.jnlp" spec="1.0+">
<information>
<title>Mapdarstellung ALPHA</title>
<vendor>Evilion</vendor>
<homepage href=""/>
<description>Map</description>
<description kind="short">Mapdarstellung ALPHA</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se java-vm-args="-Djava.security.policy=applet.policy" initial-heap-size="250M" max-heap-size="500M" version="1.5+"/>
<property name="Xms" value="250M"/>
<property name="Xmx" value="500M"/>
<property name="j3d.rend" value="d3d"/>
<jar eager="true" href="Map_3D.jar" main="true"/>
<jar href="lib/postgresql-8.4-701.jdbc4.jar"/>
<jar href="lib/j3dcore-d3d_dll.jar"/>
<jar href="lib/j3dcore-ogl-chk_dll.jar"/>
<jar href="lib/j3dcore-ogl_dll.jar"/>
<jar href="lib/j3dcore.jar"/>
<jar href="lib/j3dutils.jar"/>
<jar href="lib/vecmath.jar"/>
<jar href="lib/clib_jiio.dll.jar"/>
<jar href="lib/clib_jiio_sse2.dll.jar"/>
<jar href="lib/clib_jiio_util.dll.jar"/>
<jar href="lib/clibwrapper_jiio.jar"/>
<jar href="lib/jai_imageio.jar"/>
</resources>
<application-desc main-class="map.Map">
</application-desc>
</jnlp>
[/XML]
Kann mir jamand helfen?
Zuletzt bearbeitet: