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); } }