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

code voor het verkleinen ziet er als volgt uit.
saveJpg ziet er als volgend uit:
Wat zou hier het probleem kunnen zijn? En wat is een mogelijke work-arround rond deze "bug" of doe ik zelf toch iets mis?
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

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 ]