Mesclar imagens
Aspose.PDF 21.4 permite combinar Imagens. O método Merge Images verifica o conteúdo de uma pasta específica e trabalha com o tipo especificado de arquivos nela. Ao trabalhar com a mesclagem de imagens, especificamos ‘inputImagesStreams’, Formato de Imagem e Modo de Mesclagem de Imagem (como exemplo - vertical) do nosso arquivo. Em seguida, salvamos nosso resultado em FileOutputStream.
Siga o próximo trecho de código para resolver sua tarefa:
Mesclar Imagens
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();
}
}
O segundo exemplo funciona da mesma forma que o anterior, mas as imagens mescladas serão salvas horizontalmente.
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();
}
}
No terceiro exemplo, vamos mesclar as imagens centralizando-as. Dois horizontalmente, dois verticalmente.
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();
}
}
Além disso, Aspose.PDF para Java oferece a oportunidade de combinar imagens e salvá-las no formato Tiff, usando o Método 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();
}
}
Para salvar as imagens mescladas como uma imagem em uma página PDF, colocamos elas no imageStream, colocamos o resultado na página com o método addImage, onde especificamos as coordenadas onde queremos colocá-las.
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));
}