Toon posts:

[java]nikon D70 en graphics2D drawImage

Pagina: 1
Acties:

Verwijderd

Topicstarter
situatie: ben bezig met het uitwerken van een fotomanagement-tool.

probleem: foto's van het toestel D70 wordt slecht geresized. Slecht betekent in dit geval: ze worden donkerder (of hun brightness verminderd aanzienlijk). Dit probleem heb ik niet op foto's van D100, D1, canon 1Ds, canon 350d!

voorbeeld foto's
Afbeeldingslocatie: http://users.pandora.be/sgweb/d70.jpg


code voor het verkleinen ziet er als volgt uit.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
                double width;
                double height;
                double max = 640.0;
                if (fullImg.getWidth() > fullImg.getHeight()) {
                    //landscape
                    width = max;
                    height = fullImg.getHeight() / (fullImg.getWidth() / max);
                } else {
                    height = max;
                    width = fullImg.getWidth() / (fullImg.getHeight() / max);
                }

                BufferedImage bi = new BufferedImage((int) width, (int) height,
                        BufferedImage.TYPE_INT_RGB);

                Graphics2D g2 = bi.createGraphics();

                g2.drawImage(fullImg, 0, 0, (int) width, (int) height, null);
                g2.dispose();
                saveJpg(target, bi, 0.8f)


saveJpg ziet er als volgend uit:
Java:
1
2
3
4
5
6
7
            out = new FileOutputStream(target);
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
            param.setQuality(quality, false);
            encoder.setJPEGEncodeParam(param);
            encoder.encode(bi);
            bi.flush();


Wat zou hier het probleem kunnen zijn? En wat is een mogelijke work-arround rond deze "bug" of doe ik zelf toch iets mis?

[ Voor 3% gewijzigd door Verwijderd op 13-07-2006 11:16 ]


Verwijderd

Topicstarter
kick

Verwijderd

De oorzaak zou ik niet zo 123 kunnen aanwijzen. Maar resizen doe je doorgaans niet op deze manier, kijk bijvoorbeeld eens naar JAI.

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Een erg nuttige topic aangaande jouw probleem. Ook uitgebreide examples komen hier aan bod.. daar heb je vast wel iets aan. JAI kan je hier dus ook gebruiken (Java Advanced Imaging API).