网站建设资讯

NEWS

网站建设资讯

java合并图片的代码 图片合成代码

如何使用Java合并多个文件

使用java编程语言,对文件进行操作,合并多个文件,代码如下:

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的东湖网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import static java.lang.System.out;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.util.Arrays;

public class test {

public static final int BUFSIZE = 1024 * 8;

public static void mergeFiles(String outFile, String[] files) {

FileChannel outChannel = null;

out.println("Merge " + Arrays.toString(files) + " into " + outFile);

try {

outChannel = new FileOutputStream(outFile).getChannel();

for(String f : files){

FileChannel fc = new FileInputStream(f).getChannel();

ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);

while(fc.read(bb) != -1){

bb.flip();

java 如何将多张JPG图片合成视频文件,比如:avi格式 或 mpg格式.

之前有做过图片合成视频的功能,大概代码就是这样,你可以看一下

/**

* 图片合成视频

* @param mp4SavePath 视频保存路径

* @param imageDir 图片地址

* @param rate 这个可以理解成视频每秒播放图片的数量

*/

public static boolean jpgToMp4(String mp4SavePath, String imageDir, double rate) {

FFmpegFrameRecorder recorder = null;

boolean flag = true;

try {

File[] files = FileUtils.fileSort(imageDir);

int [] widthArray = new int[files.length];

int [] heightArray = new int[files.length];

/**

* 获取合成视频图片的最大宽高,避免图片比例不一致最终合成效果差

*/

for (int i = 0; i files.length; i++) {

BufferedImage bufferedImage = ImageIO.read(files[i]);

widthArray[i] = bufferedImage.getWidth();

heightArray[i] = bufferedImage.getHeight();

}

/**

* 这个方法主要是防止图片比例达不到视频合成比例的要求,如果达不到下面条件视频则会无法播放

* 图片宽:必须要被32整除

* 图片高:必须要被2整除

*/

int [] maxWH = getImgMaxWH(widthArray,heightArray);

recorder = new FFmpegFrameRecorder(mp4SavePath,maxWH[0],maxWH[1]);

recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);

/**

* 视频质量:目前测试出来的是25-30最清晰,视频质量范围好像是0-40,具体可以自己慢慢测

*/

recorder.setVideoQuality(25);

recorder.setFormat("mp4");

recorder.setFrameRate(rate 0 ? rate : 1);

recorder.setPixelFormat(0);

recorder.start();

OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();

/**

* 合成视频

*/

for(int i = 0; i files.length; i++ ){

opencv_core.IplImage image = cvLoadImage(files[i].getPath());

recorder.record(conveter.convert(image));

opencv_core.cvReleaseImage(image);

}

logger.info("合成成功");

} catch(Exception e) {

e.printStackTrace();

flag = false;

logger.error("合成失败");

} finally {

try {

if (recorder != null){

recorder.stop();

recorder.release();

}

} catch (FrameRecorder.Exception e) {

e.printStackTrace();

}

}

return flag;

}

java中如何将两个文件合并到另一个文件

java可以使用FileChannel快速高效地将多个文件合并到一起,以下是详细代码:

import static java.lang.System.out;  

import java.io.FileInputStream;  

import java.io.FileOutputStream;  

import java.io.IOException;  

import java.nio.ByteBuffer;  

import java.nio.channels.FileChannel;  

import java.util.Arrays;  

public class test {  

public static final int BUFSIZE = 1024 * 8;  

public static void mergeFiles(String outFile, String[] files) {  

FileChannel outChannel = null;  

out.println("Merge " + Arrays.toString(files) + " into " + outFile);  

try {  

outChannel = new FileOutputStream(outFile).getChannel();  

for(String f : files){  

FileChannel fc = new FileInputStream(f).getChannel();   

ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);  

while(fc.read(bb) != -1){  

bb.flip();  

outChannel.write(bb);  

bb.clear();  

}  

fc.close();  

}  

out.println("Merged!! ");  

} catch (IOException ioe) {  

ioe.printStackTrace();  

} finally {  

try {if (outChannel != null) {outChannel.close();}} catch (IOException ignore) {}  

}  

}  

public static void main(String[] args) {  

mergeFiles("D:/output.txt", new String[]{"D:/in_1.txt", "D:/in_2.txt", "D:/in_3.txt"});  

}  

}

用Java写一个能将文本、图片、音频三种格式的文件合并成同一格式例如.dat或者更好的格式的Java程序!

有个思路你可以参考

因为文件都是以二进制形式存储在计算机上,而java获取的文件流就是二进制。

你可以把二进制写在一个文本里,但要注意分割三个不同的文件,然后把这个文本定义为.dat文件。 等要读取不同的文件时,通过你的分隔符来获取对应的文建流。最后输出这个流

java list集合合并问题

SELECT ID,PARK_SPACE,SUM(C) AS WM_CONCAT(C) FROM TABLE_图片1表 WHERE 1=1 GROUP BY ID

把这句SQL查询的结果放到你的List中就行了 你的List就有图片2所示的三条数据。

其实 如果你查出的结果最终还是循环保存到数据库中,直接在数据库中操作就行了,不用再到java中再走保存处理,

这样效率会高的多。

不好意思没看清题目,不用sum统计 用 wmsys.wm_concat 字符连接函数,得出的结果就是你图片2中的 WM_CONCAT(C) 显示的结果,该方法使用Oracle10g 以后的版本

SELECT ID,PARK_SPACE,wmsys.wm_concat(C) AS WM_CONCAT(C) FROM TABLE_图片1表 WHERE 1=1 GROUP BY ID


分享名称:java合并图片的代码 图片合成代码
路径分享:http://njwzjz.com/article/higcsd.html