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

java合成圖片

發布時間: 2025-04-12 05:33:19

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生成jpg圖片 並且實現文字和圖片混排

response.setHeader("Cache-Control","no-cache");
String str="";
String sum="";
for(int i=0;i<4;i++){
Random random=new Random();
int j=Math.round(random.nextFloat()*35);
char x=str.charAt(j);
sum+=x+"";
}
request.getSession().setAttribute("Code",sum);
BufferedImage bufferedImage=new BufferedImage(50,20,BufferedImage.TYPE_3BYTE_BGR);
Graphics2D graphics2D=(Graphics2D)bufferedImage.getGraphics();
graphics2D.setColor(Color.blue);
graphics2D.fill3DRect(0,0,50,20,false);
graphics2D.setColor(Color.YELLOW);
graphics2D.drawString(sum,10,12);
response.setContentType("image/jpeg");
ServletOutputStream output;
try {
output = response.getOutputStream();
JPEGImageEncoder encoder= JPEGCodec.createJPEGEncoder(output);
encoder.encode(bufferedImage);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

⑶ java生成圖片(java生成圖片並添加文字)

java怎麼生成帶用戶微信頭像的圖片,並把這張圖片發送給用戶。

准確的說,應該是文件上傳如何實現。文件上傳,一般都是能過組件來實現,自己來寫上傳的話,不太方便,也沒必要,別人都做的太多了。

1,進入微信界面,選擇「我」。2,點擊「頭像」。3,接著點擊「我的二維碼」。4,其次點擊右上角的「三個點」。5,然後點擊「換個樣式」。

首先我們需要打開手機微信,在「發現」頁我們找到小程序入口,搜索頭像小助手這個小程序。搜索並進入頭像小助手後,在手機顯示的頁面上我們找到並進入「頭像加字」這個選項。一眼難忘的微信頭像。

用軟體在圖片上添加上你的姓氏,調整好字體、大小、顏色,保存到桌面或發到手機上,再打開微信點擊更換頭像(把剛才製作的姓氏頭像上傳即可。不明白給要做的姓氏和郵箱追問。男人走運發財微信頭像。

關注微信官方公眾號「公眾平台安全助手」。點擊主菜單的「群發」,選擇新建群發。登錄要群發的賬號,上傳要群發的圖片,確認圖片無誤後,點擊群發。

打開【微信】,在【搜索框】搜索【姓氏圖】,進入【姓氏圖】小程序,輸入你和你對象的姓氏,點擊【開始製作】,最後將製作好的圖片保存替換原有的頭像即可。

如何利用Java生成JPG縮略圖

1、把圖片等比例縮放,然後以二進制的形式存到資料庫中。

2、把圖片按照規定的比例壓縮,然後保存至FTP,列表讀取縮略圖,單擊顯示原圖。

3、學JAVA就到廣州瘋狂JAVA來學習李剛授課我是不能。。

4、用photoshop打開,另存為jpg格式就可以了。注意很多tif圖片都是cmyk四色的(印刷格式),如果想把圖片應用於網路上,要轉換成rgb三色的。方法就是打開後,點擊圖像—〉模式—〉rgb顏色。

5、我剛剛找到一點點思路,希望對你有幫助。你把電腦的系統隱藏文件都改成可見的,如果你在有圖片的文件夾打開,會發現裡面有一個文件叫thumb.db這個文件。這個應該是一個資料庫文件,存放的是圖片文件夾裡面圖片的縮略圖。

6、你好。如果要把別人的圖片水印變成自己的,那麼首先就是用PS軟體P除掉該圖片上的水印,然後將P過的圖片加入微信公眾平台素材庫里。

java自定義字體文字和圖片生成新圖片(高分)

這個技術好實現,思想如下:用js控制;再根據文字與形式生成圖片;再輸出即可。我以前做過。

Java的話最好用圖片,點陣圖類也可以。但是直接讀取圖片的效率比較高,畫起來也方便,用點陣圖類很難做出好的效果,做起來改起來都十分麻煩。如果用到OpenGL還可以用動態構造紋理的方法,但是資源佔用會比較多。

+表格,圖形的只讀文檔是很有用的。它的類庫尤其與javaServlet有很好的給合。+使用iText與PDF能夠使你正確的控制Servlet的輸出。

使用JLabel載入圖片效果使用JLabel時,由於未圖片尺寸與窗體尺寸不一致,導致圖片只顯示出一部分;且有一個控制項被遮擋了。注意:通過精細設置尺寸和添加控制項順序,可以達到較為滿意的效果的。

你也可以自己繼承JPanel類,然後把圖片、大小作為參數傳遞,然後構造這樣的JPanel。然後把你放在frame上的東西都放在這個JPanel上。

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

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:621
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:350
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:65
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:290
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:785
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:335
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:199
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:794
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:352
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:580