06. november 2004 - 22:47Der er
21 kommentarer og 1 løsning
Resize billede samt komprimer
Her er en bid kode hvor jeg ønsker at tilføje resizing af det uploaded billede. Feks til 320x240 med en progressive komprimering faktor 15. Nogen der har et eksempel da jeg ikke har kunne finde noget.
ImageInfo info = new ImageInfo(); // går ned her MagickImage image = new MagickImage(new ImageInfo(FileName)); MagickImage bigger = image.scaleImage(1200, 900); bigger.setFileName("bigger.jpg"); bigger.writeImage(info);
Nu har jeg gennemsøgt med google på kryds og tværs. Fatter ikke hvorfor det skal være så besværligt at lave de simpleste ting i java. Jeg er nok for forvent da jeg er vandt til Delphi og andre sprog der bliver kompileret. Der kan man sgu ikke kompilere en skid hvis den ikke kan finde tingene...
"The server encountered an internal error () that prevented it from fulfilling this request."
java.lang.NoClassDefFoundError. <- Dette sker i: ImageInfo info = new ImageInfo(); Kan jeg se når jeg debugger. Fint nok, så har jeg tilføjet jar filen i netbeans (hvilket ikke var nødvendigt med cos) så classpath er korrekt (går jeg ud fra). Det hjalp lige fedt. Spørgsmålet er om den ikke kan finde jmagick.dll og alle core.dll'erne fra ImageMagick, men jeg tror ikke det er problemet
Men nu får jeg denne fejl anden gang jeg kører webapp:
Native Library C:\WINDOWS\JMagick.dll already loaded in another classloader
Jeg har fundet denne kommentar på nettet: "//Tell jmagick.magick.Magick to not use the system ClassLoader. Put the following line in an initialization part of your webapp: System.setProperty("jmagick.systemclassloader","no");"
initialization part har jeg dog ikke kunne hitte ud af, så nu skal jeg stoppe og starte tomcat hver gang, hvilket er total irreterende.
Nogen idé om hvordan jeg får den til kun at loade dll een gang?
Hvis du kan finde hvor Tomcat bliver startet så kan du starte den med: -Djmagick.systemclassloader=no men det er sikkert ikke lige til (jævnfør tidligere).
JSP bliver faktisk også kompileret. To gange endda. jspc compileren oversætter fra .jsp til .java og javac comoileren oversætter fra .java til .class.
Problemet er nok snarere at: - brug af native kode fra Java kan give nogen problemer p.g.a. den forskellige kontekst (helt tilsvarende kan brug af native kode fra .NET også give nogen problemer) - du har valgt et bruge en server integreret med din IDE, hvilket er nemt at komme igang med, men som jo ikke giver den helt store fornemmelse for serverens konfiguration
Havde allerede en linie med System.setProperty("jmagick.systemclassloader","no"); foran, men det ser ud til at virke nu hvor netbeans har været genstartet.
Får denne fejl nu. :( magick.MagickException: No image to scale
ImageInfo info = new ImageInfo(); MagickImage image = new MagickImage(new ImageInfo(saveDirectory + FileName)); MagickImage bigger = image.scaleImage(1200, 900); <- i denne linie!
Filen findes og er blevet uploaded med COS.
Ang. kompilering, så ved jeg godt at java bliver kompileret, men integrationen med IDE mangler en del for at fange alt inden application køres. Som det er nu får man først mange fejl ved runtime...
Default er at JSP sider først compiles første gang de skal vises. Og derfor for man normalt først fejlene der. Man kan godt precompile JSP sider. Jeg har ingen anelse om hvordan man gør det i NetBeans.
Den DLL der brugers loades dynamisk og alle fejl der relaterer sig til den vil altid komme runtime. Også hvis du i Delphi legede med LoadLibrary.
jeg får ikke "file not found" eller noget mere sigende. har checket at saveDirectory + FileName peger på filen ved at lave en println lige før samt kigget i folderen. måske skal jeg lave en fileexist?
Ingen ved hvordan man får dette lib til at virke. Kan ikke slippe uden om at den ikke kan finde filen selv om den ligger der!?
Synes godt om
Ny brugerNybegynder
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.