Avatar billede apocryphal Nybegynder
21. august 2003 - 08:53 Der er 2 kommentarer og
2 løsninger

Bean til bestemmelse af Image Dimensions

Hey.

Jeg forsøger at lave en JavaBean, der kan fortælle mig dimensionerne på en given grafikfil.

Jeg har implementeret metoden:
    public int getHeight(String filename)
    {
        URL url = ImageState.class.getResource(filename);
        Image image = Toolkit.getDefaultToolkit().getImage(url);
        Dimension dimension = new Dimension(image.getWidth(null), image.getHeight(null));
       
        return dimension.height;
    }

Men den returnere blot en exception når jeg prøver den:
java.lang.NoClassDefFoundError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:140)
    at java.awt.Toolkit$2.run(Toolkit.java:712)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:703)
    at ImageState.getHeight(ImageState.java:26)
    at _tester__jsp._jspService(/tester.jsp:4)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
    at com.caucho.jsp.Page.subservice(Page.java:506)
    at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
    at com.caucho.server.http.Invocation.service(Invocation.java:315)
    at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
    at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
    at java.lang.Thread.run(Thread.java:536)

Er det toolkitet der er noget i vejen med, eller SKAL jeg definere en ImageObserver for at få brede på et Imageobjekt. Hvis ja, hvordan?

--
Jonas
Avatar billede arne_v Ekspert
21. august 2003 - 09:18 #1
Toolkit.getDefaultToolkit() returnerer et objekt der "repræsenterer"
en AWT GUI implementation.

Jeg er ikke overrasket over at den ikke virker i en JSP side.

Et sådant objekt skal kommunikere direkte med det native GUI
system og en JSP container har slet ikke noget GUI system.
Avatar billede arne_v Ekspert
21. august 2003 - 09:20 #2
Mit gæt er at du skal kigge på javax.imageio.* klasserne.
Avatar billede apocryphal Nybegynder
01. september 2003 - 13:24 #3
Yes, det virker med de pakker...

public BufferedImage getImage(String filename) throws IOException
{
    java.net.URL url = ImageState.class.getResource(filename);
    BufferedImage image = ImageIO.read(new File(filename));
    return image;
}

Jeg vil godt give dig halvdelen af pointene for svaret, hvis du vil have dem :)

--
Jonas
Avatar billede arne_v Ekspert
01. september 2003 - 13:33 #4
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester