當前位置:首頁 » 編程語言 » java圖片合成

java圖片合成

發布時間: 2023-07-22 08:04:52

A. 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;
}

B. 請問用Java 怎樣實現摳圖功能。比如圖片是一塊石頭放在一張紙上,怎樣

1、用ps打開兩張圖片。
2、在工具里選擇「移動工具」,按住滑鼠左鍵把第二個圖片拖動到第一個圖片里。由於第二張的像素有點大,所以會把原來的圖片覆蓋住的,通過滑鼠稍微移動一下。
3、按ctrl+t(自由變換快捷鍵),圖片的四周出現了可以調節的橫線,按住shift拖動圖片的一個角可以進行等比例縮放,這張圖太大了,所以等比例縮小一點。調整為合適的大小,放到合適的地方。調整完畢,按enter鍵確認。
4、在右下角的圖層面板里點擊第三個按鈕(添加矢量蒙板),為第二個圖層添加一個蒙板。
5、可以看到在「工具」里,前景色和背景色默認修改為了白色和黑色。
6、然後選擇工具里的「漸變」工具。可以看到,上方工具欄出現了漸變的一些設置。因為前景色為白色,背景色為黑色,所以默認是白色到黑色的漸變條。後面分別設置為徑向漸變,正常模式,百分之百不透明度,反向不打勾。
7、點擊白色到黑色的漸變條,進入漸變編輯器。
8、把左側下方的白色滑塊拖到中間,可以在下方的位置處直接填寫百分之50。
9、把滑鼠放在左側的滑動條下方,會出現「點按可添加色標」。
10、點擊一下,出現一個新的色塊,為白色。把它拖動到最左邊,可以直接填寫百分之0。
11、選中最左邊的白色色塊,點擊一下下面的顏色後面的白色,彈出「選擇色標顏色」的窗口。在裡面選擇純黑色。點擊「確定」。這樣就把白色改成了黑色。漸變色變成了黑-白-黑。點擊「確定」。
12、可以看到上面確實變成了黑色-白色-黑色漸變。
13、一隻手按住shift鍵,一隻手按住滑鼠左鍵在圖片上拉出一條直線(按住shift鍵是保證水平)。
14、松開手,蒙板就起作用了,這是利用了蒙板狀態下,黑色隱藏,白色顯示的特點。
15、然後稍加修飾。選擇工具里的「矩形選框工具」,選中要裁剪的部分。
16、點擊「圖像」,選擇「裁剪」。
17、圖片被裁剪,裁剪完成後按ctrl+d取消選中狀態,或者可以點擊右鍵,選擇「取消」。
18、、這樣就實現了兩張圖片的合成。利用蒙板和漸變色合成的方式的好處是第二個圖片可以保留一部分的背景,有一種融入的感覺。如果採用摳圖合並的方法,一般是給人物換背景圖,技術要求比較高。

C. Java編寫時,能不能像PS一樣對圖片進行修圖或合成呀

不可以的,但是可以先使用Ps等圖片處理工具將圖片美化好後,再使用java進行編寫。

熱點內容
怎麼看電腦的用戶名和密碼 發布:2025-02-08 02:02:48 瀏覽:794
vb動態資料庫 發布:2025-02-08 02:01:53 瀏覽:110
一台存儲可以配幾個擴展櫃 發布:2025-02-08 01:53:22 瀏覽:566
分布式存儲技術優缺點 發布:2025-02-08 01:51:37 瀏覽:245
linuxsuse重啟 發布:2025-02-08 01:49:27 瀏覽:412
java對稱加密 發布:2025-02-08 01:48:04 瀏覽:523
java報表框架 發布:2025-02-08 01:47:59 瀏覽:930
方舟手游怎麼防止踢出伺服器 發布:2025-02-08 01:42:44 瀏覽:690
c語言中函數的聲明函數 發布:2025-02-08 01:41:08 瀏覽:70
編譯termux 發布:2025-02-08 01:39:42 瀏覽:650