PDFからクリップされた画像を抽出する
JPedalは、PDFファイルに含まれるクリップされた画像を簡単に抽出するための複数のメソッドを提供しています。クリップされた画像とは、ページ上に表示される状態のPDF内の画像のことです。PDFには、ページ上での表示のためにクリップ、回転、拡大縮小された複数の画像が含まれることがあります。この例では、これらの処理が適用された状態の画像を返します。元の画像を取得するには、ExtractImages を使用できます。
java -jar jpedal.jar --extractClippedImages inputFileOrFolder outputFolder outputFormat outputSize subFolder [outputSize subFolder]...
この例の最後の2つの変数では、outputSizeに高さまたは倍率を指定することで、画像を抽出するサイズを指定できます。outputSizeが数値の場合、画像は指定されたサイズ、またはページ上に表示されるサイズのいずれか小さい方にリサイズされます。値を-1にすると、ページ上に表示されるサイズで画像が出力されます。outputSizeがxの後に数値が続く形式(x1)の場合、画像はこの係数で拡大縮小されます。subFolderは、前のサイズ変数で指定した画像を保存するサブディレクトリです。outputSizeとsubFolder変数を繰り返すことで、1つのコマンドから複数のサイズを作成できます。
java -jar jpedal.jar --extractClippedImages inputFileOrFolder outputFolder outputFormat -1 raw 100 medium 50 thumbnail x2 large
静的便利メソッド
ExtractClippedImages.writeAllClippedImagesToDir(
"inputFileOrFolder",
"outputFolder",
"outputImageFormat",
new String[] {"imageHeightAsFloat", "subFolderForHeight"});
API アクセスメソッド
ExtractClippedImages extract = new ExtractClippedImages("inputFile.pdf");
//extract.setPassword("password");
if (extract.openPDFFile()) {
int pageCount = extract.getPageCount();
for (int page = 1; page <= pageCount; page++) {
int imagesOnPageCount = extract.getImageCount(page);
for (int image = 0; image < imagesOnPageCount; image++) {
BufferedImage image = extract.getClippedImage(page, image);
}
}
}
extract.closePDFfile();
この例では、JPedalのExtractClippedImages クラスを使用しています。最後の変数は、コマンドラインで使用されるoutputSizes / subDirectory変数と同様の方法で、一連の出力サイズとサブディレクトリのペアを指定する文字列配列です。
ExtractClippedImagesは、BMP、PNG、JPG、TIFFなど、いくつかの異なる画像フォーマットで画像を出力できます。
