List<FileStreamVO> fileStreamList = photoFileUtils.getPhotoFileStreamListByPhotoList(photoList);
int width = 44;
int height = 44;
int bigWidth = 179;
int bigHeight = 134;
List<int[]> image44List = new ArrayList<int[]>();
// 压缩75的图为44
for (FileStreamVO fileStream : fileStreamList) {
try {
// 压缩75小图的流
Image image = ImageIO.read(fileStream.getInputStream());
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics graphics = bufferedImage.getGraphics();
// graphics.setColor(Color.white);
// graphics.fillRect(0, 0, width, height);
graphics.drawImage(image, 0, 0, width, height, null);
int[] rgbArray = new int[width * height];
image44List.add(bufferedImage.getRGB(0, 0, width, height, rgbArray, 0, width));
if (0 == m) {
itemlist.append(fileStream.getPhotoid());
m = m + 1;
} else if (m < 12) {
itemlist.append(",").append(fileStream.getPhotoid());
m = m + 1;
}
} catch (IOException e) {
logger.error("createLovePhotoFolderCover error lovePhotoFolderId:" + lovePhotoFolderId);
}
}
BufferedImage newImage = new BufferedImage(bigWidth, bigHeight, BufferedImage.TYPE_INT_RGB);
Graphics graphics = newImage.getGraphics();
graphics.setColor(Color.white);
graphics.fillRect(0, 0, bigWidth, bigHeight);
graphics.drawImage(newImage, 0, 0, bigWidth, bigHeight, null);
if (image44List.size() < 12) {
logger.error("createLovePhotoFolderCover error image44List.length<12 lovePhotoFolderId:"
+ lovePhotoFolderId);
if (photoList.size() >= 1) {
this.updateCountOfLovePhotoFolder(lovePhotoFolderId, userId);
int count = lovePhotoUserItemService.getLovePhotoUserItemCountByFolderId(lovePhotoFolderId, userId);
lovePhotoFolderDao.updateLovePhotoFolderCover(lovePhotoFolderId, photoList.get(0).getTinyDocId(),
ImgStorageType.PHOTO_PHOTO163, count, photoList.get(0).getId() + "");
// 到DFS上删除旧的封面数据
if (lovePhotoFolder.getItemList().split(",").length == 12) {
fileService.deleteFile(lovePhotoFolder.getImageId());
}
}
return;
}
// 生成12个小图的封面
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
newImage.setRGB(width * j + j, height * i + i, width, height, image44List.get(i * 4 + j), 0, width);
}
}
分享到:
相关推荐
在Java编程环境中,将一系列图片合并成视频是一个常见的多媒体处理任务。这个项目文件提供了一种实现方式,让我们来深入探讨一下这个过程中的关键知识点。 首先,我们要了解的是Java中的多媒体处理库。在这个项目中...
除了往图片上添加文字外,另一个常见的需求就是将多张图片合并成一张。虽然原始代码没有提供合并图片的具体实现,但这里可以提供一种通用的合并策略: #### 合并图片的方法 1. **确定最终图片的尺寸**:首先计算出...
在Java编程环境中,将两个TIFF(Tagged Image File Format)图像或普通图像合并成一个单一的TIFF或图像文件,需要对图像处理有深入的理解,特别是关于图像格式、颜色模型以及位深度的知识。以下是一些相关的技术要点...
在Java编程环境中,将图片列表合并转换为PDF文档是一项常见的任务,特别是在报告生成、文档整理或数据可视化等场景。...这个“Images2Pdf”示例只是一个基础起点,帮助你快速入门将图片合并为PDF的Java编程。
Java 使用 POI 合并两个 Word 文档 Java 是一种流行的编程语言,POI(Poor Obfuscation Implementation)是一个流行的 Java 库,用于操作 Microsoft Office 文件,包括 Word 文档。合并两个 Word 文档是指将两个...
在Java编程语言中,合并图片是一项常见的任务,特别是在图像处理、设计或数据分析的场景下。这篇博客"java合并图片学习"提供了一个简单的示例来解释如何在Java中实现这一功能。我们将深入探讨这个主题,包括核心概念...
在Java编程中,合并图片是一项常见的任务,尤其在图像处理或图形用户界面开发中。本篇文章将详细解析如何使用Java实现合并两张图片的功能。通过一个具体的示例代码,我们将了解到如何读取、处理和合并图片的基本步骤...
在Java编程语言中,将多张图片合成一张图片是一项常见的图像处理任务,广泛应用于各种应用场景,如社交媒体拼图、报告生成、数据可视化等。要实现这个功能,我们需要使用到Java的图像处理库,如Java AWT(Abstract ...
在Java中,我们可以使用Java AWT或Swing库中的`BufferedImage`类来处理和操作图片。 2. 视频编码: 视频是由连续的图像帧组成的,这些帧以特定的帧率播放,给人以动态的视觉效果。编码是将这些图像帧转化为特定...
OutputStream out=new FileOutputStream("合并后的图片.jpg"); System.out.println("成功!见项目更目录!"); JPEGImageEncoder enc=JPEGCodec.createJPEGEncoder(out); enc.encode(image); imagein.close...
在本示例中,我们看到如何使用Java POI来填充Word文档,包括合并单元格、添加图片以及设置字号。以下是对代码的详细解释: 1. **初始化Document对象**: 首先,`Document`类是Apache POI库中的核心类,用于表示...
本项目的核心目标是通过JavaCV将指定目录下的JPG图片序列合成成一个视频文件。 首先,我们需要了解JavaCV的基本用法。JavaCV提供了一个Java接口,可以直接调用OpenCV和FFmpeg的函数。在Android中,我们通常需要添加...
"多张图片合并"这个主题就是关于如何将多个图像整合到一张图片中的技术。这通常涉及到编程和图像处理库的使用,例如Java中的Java Advanced Imaging (JAI) 或者更流行的ImageIO API。 描述中提到的“图片路径数量...
这个过程涉及到对图像文件的读取、处理以及合并,通常使用Java的内置库如`java.io`和`javax.imageio`。在这个场景中,`FileInputStream`用于读取图片文件,而`FileOutputStream`则用于将合成后的图片写入到新的文件...
【Java在图片上写字】 在Java中,我们可以通过使用`...结合上述代码,你可以先在一张图片上写字,然后将它与另一张图片合并,实现题目所要求的功能。记得处理可能抛出的`IOException`,并在实际项目中适当地处理异常。
在Java后端开发中,有时候我们需要处理多个PDF文件并将其合并为一个文件,这在诸如报表生成、文档整合等场景中十分常见。Apache PDFBox是一个强大的PDF处理库,它提供了丰富的API来操作PDF文档,包括合并PDF文件的...
1. **图片合并**:在Java中,可以使用Java的`java.awt`和`javax.imageio`包来处理图像。通过`BufferedImage`类,我们可以加载多张图片,然后将它们按照特定的布局和位置合并到一张新的图片中。这个过程可能涉及到...
在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...
`Java 原生生成表格图片`这个主题就是关于如何利用Java编程语言来创建包含表格的图像,而且还能实现标题行列的合并功能。下面我们将深入探讨这一技术。 首先,生成表格图片的一个常见库是Apache POI,它主要用于...
在压缩包中的"java图片大小转换"文件中,很可能包含了实现这些功能的示例代码和使用说明,可以参考学习以加深理解。在实际开发中,我们还可以借助第三方库如`ImageMagick`、`Java Advanced Imaging (JAI)`或`JavaFX`...