Avatar billede kasseper Nybegynder
22. juli 2009 - 22:58 Der er 22 kommentarer og
1 løsning

Billed skalering virker på lokal instl. men ikke på vores server

Hej

Vi har et problem med at skalerer et billed på vores server.

Det er lokaliseret til disse linjer :

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
encoder.encode(resize(inImage, scaledW, scaledH, 1.0f));

hvor resize returnerer som forventet. Så det handler om encode functionen.

På vores lokale udvikler setup virker det som det skal, men på vores server kaster den en nullPointer exception.

Miljøet er en tomcat instal. bygget via AppFuse, hvis det hjælper noget. Serveren kører på en unix, imens det lokale miljø er windows/mac os x.

Kan det evt. rettigheder til filsystemet til tomcat brugeren, der skal sættes, eller er der andet vi har overset?
Avatar billede kasseper Nybegynder
23. juli 2009 - 07:06 #2
Det hjalp ikke. Stadig NullPointerException, samme sted.
Avatar billede mcb2001 Nybegynder
23. juli 2009 - 09:29 #3
har du kontrolleret versionerne af java?
Du kunne have 1.4.2 på serveren og 1.6 på test?
Avatar billede kasseper Nybegynder
23. juli 2009 - 11:43 #4
Det er ihvertfald version 1.6.x.
Lidt ekstra info er at vi forsøger at lave en skalering af et profil billed. Så jeg fandt noget kode der kunne gøre dette, som så benytter JPEGImageEncoder.
Hvis I har kendskab til en anden god skalerings rutine, det gør brug af noget mere standard, så er det også fint som svar(og som selvfølgelig kan køres på vores server :-)
Avatar billede mcb2001 Nybegynder
23. juli 2009 - 11:57 #5
Brug java.awt.image.imageio og få et java.awt.image.bufferedimage - dette kan skalere af sig selv...
Avatar billede kasseper Nybegynder
23. juli 2009 - 12:19 #6
ok fint, har du evt. et eksempel jeg kan kigge på?
Avatar billede mcb2001 Nybegynder
23. juli 2009 - 13:08 #7
Hvis du kan vente til i aften kan jeg poste en hel del kode - har den ikke her på arbejdet :-)
Avatar billede kasseper Nybegynder
23. juli 2009 - 13:33 #8
Det vil være super godt. "Good things come for those who wait", er det ikke sådan man siger :-)
Avatar billede mcb2001 Nybegynder
23. juli 2009 - 13:57 #9
her er et lidt større bibliotek... Det er lidt ældre kode, og brugt i en hel anden sammenhæng. Men jeg er ret overbevist om at du kan bruge den nærmest direkte :-)

http://kikos-it.dk/image.zip
Avatar billede kasseper Nybegynder
23. juli 2009 - 14:55 #10
Tak for det, jeg vil afprøve det iaften.
Avatar billede mcb2001 Nybegynder
23. juli 2009 - 15:38 #11
Hvis du vil se et eksempel på at det virker, så har jeg brugt det som motor i denne:

http://arboc.dk/_old/
Avatar billede kasseper Nybegynder
23. juli 2009 - 16:17 #12
Det ser fedt ud...Jeg er heller ikke i tvivl om at det virker.....lokalt. Spørgsmålet er bare om jeg kan få det til at spille på serveren. Der er jo ikke noget display på serveren, så headless skal nok sættes, men om det virker...det ved jeg iaften. Foreløbig tak for hjælpen.
Avatar billede kasseper Nybegynder
23. juli 2009 - 20:49 #13
Hey, dit link:

http://kikos-it.dk/image.zip

melder 404??? Har du mulighed for at uploade det igen?
(nu er jeg endelig kommet hjem og skal afprøve det :-) )
Avatar billede mcb2001 Nybegynder
24. juli 2009 - 09:17 #14
ups - nogle gange ryder jeg alt for hurtigt op i mine ting...
Avatar billede kasseper Nybegynder
24. juli 2009 - 10:07 #15
taxen, jeg prøver igen, iaften.
Jeg vil dog sige at jeg allerede nu, er kommet skridtet videre, og fået det til at virke på serveren. Så nu skal jeg egentlig bare se om din skalerings rutine er bedre end vores egen.
Men du kan allerede nu smide et svar, da det var dig der pegede pilen mod ImageIO.
Avatar billede mcb2001 Nybegynder
24. juli 2009 - 10:12 #16
:-)

Jeg vil ikke nødvendigvis sige om min er bedre, den er i hvert fald justerbar, da du kan slå forskellige teknikker til og fra i skaleringerne (antialiasing o.l.)...
Avatar billede kasseper Nybegynder
27. juli 2009 - 09:43 #17
Alt virker som det skal, mange tak for din hjælp.
Jeg har taget din kode i brug. Så jeg har lige et tillægsspørgsmål. Jeg smider 50 point i hatten, hvis du gir mig et svar på den også.

Jeg vil gerne ha at mine billder for en pæn ramme, så jeg forsøgte at bruge din metode placeImageInImage, på denne måde :

URL url = new URL("http://upload.wikimedia.org/wikipedia/commons/3/3e/Phalaenopsis_JPEG.png");
        BufferedImage buf1 = ImageIO.read(url.openConnection().getInputStream());
       
       
       
        BufferedImage buf2 = new BufferedImage(400,400,BufferedImage.TYPE_INT_RGB);
        Graphics g = buf2.getGraphics();
        g.setColor(Color.BLACK);
        g.fillRect(0,0,400,400);

       
        File out = new File("C:\\test\\test.jpg");
        ImageIO.write(placeImageInImage(buf2, buf1,ImageConstants.HORIZONTAL_ALLIGNMENT_CENTER,ImageConstants.VERTICAL_ALLIGNMENT_MIDDLE), "JPG", out);

Men resultatet er ikke en sort ramme, men at alle farverne er blevet mærkelige, nærmest som på et negativ. Kan du hjælpe med den også?

Pft.
Avatar billede mcb2001 Nybegynder
30. juli 2009 - 20:31 #18
ja, du bruger ikke samme type TYPE_INT_ARGB som jeg bruger... tror i hvert fald det er den jeg bruger - det kan du i hvert fald se i metode "new_image" i min kode :-)
Avatar billede kasseper Nybegynder
30. juli 2009 - 21:12 #19
æv, den har jeg prøvet. Det gav ikke noget nyt resultat...!
Avatar billede mcb2001 Nybegynder
30. juli 2009 - 21:19 #20
kunne det være at det PNG du indlæser ikke bruger ARGB men et andet farveskema?

Under alle omstændigheder er det der den ligger - altså med farverne :-)
Så prøv eventuelt at konvertere den til de samme skemaer :-)
(kan ikke huske hvordan man gør det, men er ret overbevist om at google er til stor hjælp) :-)
Avatar billede kasseper Nybegynder
30. juli 2009 - 21:40 #21
Ok, jeg prøver det af.

Sig mig en gang, kan man ikke længere afsætte flere point, end dem der først var afsat ??? Det kunne man da i "gamle" dage...!
Avatar billede mcb2001 Nybegynder
30. juli 2009 - 21:55 #22
man opretter et nyt spg og tildeler der :-)

Men det er helt okay, jeg behøver dem ikke :-)
Avatar billede kasseper Nybegynder
30. juli 2009 - 23:24 #23
Jamen, så har du fået de 150. takker for hjælpen.
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