合并图像
Contents
[
Hide
]
Aspose.PDF 21.4允许您合并图像。合并图像方法检查特定文件夹的内容,并处理其中指定类型的文件。在处理合并图片时,我们指定文件的’inputImagesStreams’、图像格式和图像合并模式(例如 - 垂直)。然后我们将结果保存在FileOutputStream中。
按照下面的代码片段来解决您的任务:
合并图像
public static void MergeImages01() {
File f = new File(_dataDir);
File[] images = f.listFiles((dir, name) -> name.toLowerCase().endsWith(".jpg"));
ArrayList<InputStream> inputImagesStreams = new ArrayList<InputStream>();
for (File image : images) {
try {
inputImagesStreams.add(new FileInputStream(image));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
InputStream inputStream = PdfConverter.mergeImages(inputImagesStreams, com.aspose.pdf.ImageFormat.Jpeg,
ImageMergeMode.Vertical, 1, 1);
try {
inputStream.transferTo(new FileOutputStream(_dataDir + "merged_images.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
第二个示例与前一个示例相同,但合并的图像将水平保存。
public static void MergeImages02() {
File f = new File(_dataDir);
File[] images = f.listFiles((dir, name) -> name.toLowerCase().endsWith(".jpg"));
ArrayList<InputStream> inputImagesStreams = new ArrayList<InputStream>();
for (File image : images) {
try {
inputImagesStreams.add(new FileInputStream(image));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
InputStream inputStream = PdfConverter.mergeImages(
inputImagesStreams,
com.aspose.pdf.ImageFormat.Jpeg,
ImageMergeMode.Horizontal, 1, 1);
try {
inputStream.transferTo(new FileOutputStream(_dataDir + "merged_images.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
在第三个示例中,我们将通过将图片居中来合并它们。 两个水平,两个垂直。
public static void MergeImages03() {
File f = new File(_dataDir);
File[] images = f.listFiles((dir, name) -> name.toLowerCase().endsWith(".jpg"));
ArrayList<InputStream> inputImagesStreams = new ArrayList<InputStream>();
for (File image : images) {
try {
inputImagesStreams.add(new FileInputStream(image));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
InputStream inputStream = PdfConverter.mergeImages(inputImagesStreams, com.aspose.pdf.ImageFormat.Jpeg,
ImageMergeMode.Center, 2, 2);
try {
inputStream.transferTo(new FileOutputStream(_dataDir + "merged_images.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
此外,Aspose.PDF for Java 提供了将图片合并并以 Tiff 格式保存的机会,使用 MergeImagesAsTiff 方法。
public static void MergeImages04() {
File f = new File(_dataDir);
File[] images = f.listFiles((dir, name) -> name.toLowerCase().endsWith(".jpg"));
ArrayList<InputStream> inputImagesStreams = new ArrayList<InputStream>();
for (File image : images) {
try {
inputImagesStreams.add(new FileInputStream(image));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
InputStream inputStream = PdfConverter.mergeImagesAsTiff(inputImagesStreams);
try {
inputStream.transferTo(new FileOutputStream(_dataDir + "merged_images.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
为了将合并后的图像保存为PDF页面上的一张图片,我们将它们放置在imageStream中,并使用addImage方法将结果放置在页面上,在该方法中我们指定要放置它们的坐标。
public static void MergeImages05()
{
File f = new File(_dataDir);
File[] images = f.listFiles((dir, name) -> name.toLowerCase().endsWith(".jpg"));
ArrayList<InputStream> inputImagesStreams = new ArrayList<InputStream>();
for (File image : images) {
try {
inputImagesStreams.add(new FileInputStream(image));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
InputStream imageStream = PdfConverter.mergeImages(inputImagesStreams, com.aspose.pdf.ImageFormat.Jpeg,
ImageMergeMode.Vertical, 1, 1);
Document document = new Document();
Page page=document.getPages().add();
page.addImage(imageStream, new Rectangle(10,120,400,720));
}