import
java.io.*;
import
java.awt.*;
import
org.apache.batik.transcoder.image.JPEGTranscoder;
import
org.apache.batik.transcoder.TranscoderInput;
import
org.apache.batik.transcoder.TranscoderOutput;
public
class SaveAsJPEGTiles
{
JPEGTranscoder
trans = new
JPEGTranscoder();
public
SaveAsJPEGTiles() {
trans.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,
new Float(.8));
}
public
void tile(String
inputFilename, String
outputFilename, Rectangle
aoi) throws
Exception {
trans.addTranscodingHint(JPEGTranscoder.KEY_WIDTH,
new Float(aoi.width));
trans.addTranscodingHint(JPEGTranscoder.KEY_HEIGHT,
new Float(aoi.height));
trans.addTranscodingHint(JPEGTranscoder.KEY_AOI,
aoi);
String
svgURI =
new
File(inputFilename).toURL().toString();
TranscoderInput
input = new
TranscoderInput(svgURI);
OutputStream
ostream =
new
FileOutputStream(outputFilename);
TranscoderOutput
output =
new TranscoderOutput(ostream);
trans.transcode(input,
output);
ostream.flush();
ostream.close();
}
public
static void
main(String []
args) throws
Exception {
SaveAsJPEGTiles
p = new
SaveAsJPEGTiles();
String
in =
"anne.svg";
int
documentWidth =
450;
int
documentHeight =
500;
int
dw2 =
documentWidth /
2;
int
dh2 =
documentHeight /
2;
p.tile(in,
"tileTopLeft.jpg",
new Rectangle(0,
0, dw2,
dh2));
p.tile(in,
"tileTopRight.jpg",
new Rectangle(dw2,
0, dw2,
dh2));
p.tile(in,
"tileBottomLeft.jpg",
new Rectangle(0,
dh2, dw2,
dh2));
p.tile(in,
"tileBottomRight.jpg",
new Rectangle(dw2,
dh2, dw2,
dh2));
System.exit(0);
}
}
Vous
pouvez ensuite exécuter : java
SaveAsJPEGTiles
Vous
obtiendrez alors 4 images JPEG : tileTopRight.jpg, tileTopRight.jpg,
tileBottomRight.jpg and tileBottomLeft.jpg
