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を含む複数の異なる画像フォーマットで画像を出力できます。
