java圖片合並
Ⅰ java實現多張圖片合成一張tif圖片 RenderedImage[] imgs(多張圖片), String path(保存路徑)
public static void many2one(List<String> bookFilePaths, String toPath,String distFileName) {
if (bookFilePaths != null && bookFilePaths.size() > 0) {
File[] files = new File[bookFilePaths.size()];
for(int i = 0; i < bookFilePaths.size(); i++){
files[i] = new File(bookFilePaths.get(i));
}
if (files != null && files.length > 0) {
try {
ArrayList pages = new ArrayList(files.length - 1);
FileSeekableStream[] stream = new FileSeekableStream[files.length];
for (int i = 0; i < files.length; i++) {
stream[i] = new FileSeekableStream(
files[i].getCanonicalPath());
}
ParameterBlock pb = (new ParameterBlock());
PlanarImage firstPage = JAI.create("stream", stream[0]);
for (int i = 1; i < files.length; i++) {
PlanarImage page = JAI.create("stream", stream[i]);
pages.add(page);
}
TIFFEncodeParam param = new TIFFEncodeParam();
boolean f = makeDirs(toPath);
System.out.println(f);
OutputStream os = new FileOutputStream(toPath + File.separator+ distFileName);
ImageEncoder enc = ImageCodec.createImageEncoder("tiff",
os, param);
param.setExtraImages(pages.iterator());
enc.encode(firstPage);
for (int i = 0; i < files.length; i++) {
stream[i].close();
}
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Ⅱ java 把背景和文字合成一張圖片,其中圖片長和高用戶自定義。
使用BufferedImage去合成
~~~~
Ⅲ 用Java寫一個能將文本、圖片、音頻三種格式的文件合並成同一格式例如.dat或者更好的格式的Java程序!
有個思路你可以參考
因為文件都是以二進制形式存儲在計算機上,而java獲取的文件流就是二進制。
你可以把二進制寫在一個文本里,但要注意分割三個不同的文件,然後把這個文本定義為.dat文件。 等要讀取不同的文件時,通過你的分隔符來獲取對應的文建流。最後輸出這個流
Ⅳ 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實現多個tif文件圖片拼接
publicstaticvoidmany2one(List<String>bookFilePaths,StringtoPath,StringdistFileName){
if(bookFilePaths!=null&&bookFilePaths.size()>0){
File[]files=newFile[bookFilePaths.size()];
for(inti=0;i<bookFilePaths.size();i++){
files[i]=newFile(bookFilePaths.get(i));
}
if(files!=null&&files.length>0){
try{
ArrayListpages=newArrayList(files.length-1);
FileSeekableStream[]stream=newFileSeekableStream[files.length];
for(inti=0;i<files.length;i++){
stream[i]=newFileSeekableStream(
files[i].getCanonicalPath());
}
ParameterBlockpb=(newParameterBlock());
PlanarImagefirstPage=JAI.create("stream",stream[0]);
for(inti=1;i<files.length;i++){
PlanarImagepage=JAI.create("stream",stream[i]);
pages.add(page);
}
TIFFEncodeParamparam=newTIFFEncodeParam();
Filef=newFile(toPath);
if(!f.exists()){
f.mkdirs();
}
OutputStreamos=newFileOutputStream(toPath+File.separator+distFileName);
ImageEncoderenc=ImageCodec.createImageEncoder("tiff",
os,param);
param.setExtraImages(pages.iterator());
enc.encode(firstPage);
for(inti=0;i<files.length;i++){
stream[i].close();
if(files[i].isFile()&&files[i].exists()){
files[i].delete();
}
}
os.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
Ⅵ jsp(java /html/javascript) 中有沒有將兩張圖片合成一張圖片的方法啊
Image image1 = ImageIO.read(new File(fileurl1));
Image image2 = ImageIO.read(new File(fileurl2));
int width = image.getWidth(5000);// 得到圖片的長,寬
int height = image.getHeight(5000);
BufferedImage bufferedimage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);// 構造一個內存圖片
bufferedimage.getGraphics().drawImage(image1, 0, 0, width, height, null); // 將本地圖片畫入到內存圖片
bufferedimage.getGraphics().drawImage(image2, 0, 0, image1.getWidth, image1.getHeight, null);
response.setContentType("image/jpeg");// 設置返回頭部
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
ImageIO.write(bufferedimage, "JPEG", response.getOutputStream()); //寫到瀏覽器
大概方向就是這樣,把圖片放到內存中,然後繪制內存圖片,把他們包含進去,然後把內存圖片返回。
我亂改的,不能跑的。前不久剛做過
你可以試試
==========================================
幾張圖放一起沒試過,你可以試試在繪了一張後,接著會第2張,他們的開始地點相同,看會不會被覆蓋
Ⅶ Java編寫時,能不能像PS一樣對圖片進行修圖或合成呀
不可以的,但是可以先使用Ps等圖片處理工具將圖片美化好後,再使用java進行編寫。
Ⅷ java有沒有把幾張圖片結合在一起的那種插件
其實``我連知道你什麼游戲都不知道``看好象魔獸可是太花了`都是稜角型的.`
Ⅸ java關於圖片合成的問題
圖片不是積木 疊在一起就是合成的
尤其是jpg格式 很復雜的 文件前面附加了很多信息
JPG的壓縮原理足夠寫一本書
Ⅹ java如何將多張圖片連接成一張圖片
需要用到BufferedImage了 你查一下這方面的資料
你要的那個功能很簡單···但是例子寫起來很麻煩