成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java ImageIO圖像合并效率測試

開發(fā) 后端
通過純Java的方式往一張底圖(地圖)上添加小圖片(布點),發(fā)現(xiàn)效果并不理想。下面作者將解說通過Jmagick嘗試圖像合并,利用了ImageMagick的命令來調(diào)用命令合并圖像的方式。

通過純Java的方式往一張底圖(地圖)上添加小圖片(布點),發(fā)現(xiàn)效果并不理想。

何為純java方式?就是說這些操作不需要依賴于c/c++庫,具有良好的跨平臺性,要求不僅僅能運行在Windows、Linux、Unix三大平臺之上,也可以用作Android等移動平臺之上。

下面是往一張底圖上添加小圖片(即圖像合并)的測試的數(shù)據(jù):

 

合并小圖數(shù)量

測試次數(shù)

100(張)

1000(張)

10000(張)

耗時(毫秒)

第1次

2003

15334

153010

第2次

1792

15200

153340

第3次

1869

15236

152673

第4次

1747

15903

154978

第5次

1871

16028

156506

第6次

1793

15545

154854

平均耗時(毫秒)

 

1845.833

15541

154226.8

換算為秒

 

1.845833

15.541

154.2268

往一張底圖上合并小圖100張平均耗時    1.845833秒,

往一張底圖上合并小圖1000張平均耗時  15.541秒,

往一張底圖上合并小圖10000張平均耗時       154.2268秒。

感覺這樣的效率還是太低了,無法滿足數(shù)以萬計的底圖布點需求。據(jù)說,一段高效的c++程序完成數(shù)以萬計的地圖布點任務也就需要大概一兩秒的時間(聽一位頗有經(jīng)驗的高手說的,本人未曾嘗試)。

這次終于感受到java和c/c++在效率上的差距了!

那么是不是要犧牲跨平臺性了,用Jmagick嘗試一下?此問題有待討論…

Jmagick嘗試圖像合并,利用了ImageMagick的命令來調(diào)用命令合并圖像的方式

  1. <span style="white-space:pre">  </span>public void compositeImageList(List additionImageList,String srcImagePath,String toImagePath){  
  2.         /*  
  3.          *命令格式:composite -geometry +100+150 additionImagePath srcImagePath toImagePath   
  4.          *將圖像additionImagePath附加在圖像srcImagePath上的100,150坐標處,輸出為toImagePath圖像  
  5.          */ 
  6.         //String command = "composite -geometry +100+150 D:/test/fileSource/007.png D:/test/fileSource/002.jpg D:/test/desk/rose-002.png";  
  7.         if(additionImageList!=null){  
  8.             System.out.println(additionImageList.size());  
  9.             for(int i=0;i<additionImageList.size();i++){  
  10.                 String[] additionImageInfo = (String[]) additionImageList.get(i);  
  11.                 int x = Integer.parseInt(additionImageInfo[0]);  
  12.                 int y = Integer.parseInt(additionImageInfo[1]);  
  13.                 String additionImagePath = additionImageInfo[2];  
  14.                 StringBuffer command = new StringBuffer("");  
  15.                 command.append("composite -geometry ");  
  16.                 command.append("+"+x+"+"+y+" ");  
  17.                 command.append(additionImagePath+" ");  
  18.                 command.append(srcImagePath+" ");  
  19.                 command.append(toImagePath);  
  20.                 System.out.println(command);  
  21.                 String[] str = {command.toString()};  
  22.                 JmagickTest.exec(str);  
  23.             }  
  24.         }  
  25.     } 
  1. public static void main(String[] args) {  
  2.     JmagickTest obj = new JmagickTest();//調(diào)用合并圖像方法所在的類  
  3.     try {  
  4.         String additionImagePath = "D:/test/fileSource/007.png";  
  5.         List additionImageList = new ArrayList();  
  6.         for(int i = 0;i<100;i++){  
  7.             Random random = new Random();  
  8.             int x = random.nextInt(760);  
  9.             int y = random.nextInt(1020);  
  10.             String[] additionImageInfo = {x+"",y+"",additionImagePath};   
  11.             additionImageList.add(additionImageInfo);  
  12.         }  
  13.         String srcImagePath = "D:/test/fileSource/004.jpg";  
  14.         String toImagePath = "D:/test/fileSource/004.jpg";  
  15.         long start = System.currentTimeMillis();  
  16.         obj.compositeImageList(additionImageList, srcImagePath, toImagePath);  
  17.         long end = System.currentTimeMillis();  
  18.         System.out.println(end - start);  
  19.     } catch (Exception e) {  
  20.         e.printStackTrace();  
  21.     }  

以下是測試的數(shù)據(jù):

圖像數(shù)量 合并耗費時間(ms)

1 ---- 140

10 ---- 1419

100 ---- 13912

1000 ---- 137965

10000 ---- 1392095

 

二者對比,發(fā)現(xiàn)以ImageMigick命令合并圖像的方式,效率明顯低于JDK 的ImageIO處理方式,并且在跨平臺上也遜色于純java的方式。

原文鏈接:http://blog.csdn.net/hu_shengyang/article/details/7317510

【編輯推薦】

  1. Java類變量和成員變量初始化過程
  2. JavaScript表格組件加載速度測試
  3. 5個讓人激動的Java項目
  4. Java并行編程:從并行任務集獲取反饋
  5. 不再糾結Java中的String類

 

責任編輯:林師授 來源: hu_shengyang的博客
相關推薦

2024-12-20 12:30:00

Python'|'代碼

2019-05-10 11:35:21

Windows 10Contort圖像

2010-04-16 16:12:51

jdbc分頁

2011-07-27 17:22:10

mysql極限測試索引

2011-08-23 18:00:00

lua 腳本測試C

2024-12-02 18:16:56

2010-05-31 16:46:40

2010-04-01 14:51:52

Visual Stud

2022-12-29 08:43:43

項目接口請求

2025-06-05 00:00:00

項目接口合并

2022-06-30 09:20:32

單元測試測試

2023-01-26 11:29:20

Java單元測試

2011-06-20 10:35:29

MySQL

2024-11-25 17:00:13

2011-12-23 14:28:00

Java

2024-06-03 07:55:00

2019-10-26 22:43:42

AI移動開發(fā)測試

2015-11-02 17:11:38

RelProxyJava開發(fā)效率
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成在线观看 | 日韩手机在线看片 | 做a视频在线观看 | 免费成人在线网 | 91精品在线看 | 91豆花视频 | 免费国产网站 | 亚洲在线视频 | jdav视频在线观看免费 | 国产成人综合在线 | 国产aⅴ| 欧美精品久久久 | 99精品视频免费观看 | 成人网视频 | 蜜桃av一区二区三区 | 羞羞的视频免费在线观看 | 中文字幕视频在线观看 | 狠狠操狠狠色 | 久久精品亚洲精品国产欧美 | 99热在线免费| 日韩精品一区二区三区视频播放 | 97超碰中文网| 色爱综合网 | 国产精品毛片一区二区在线看 | 国产区在线观看 | 亚洲网视频| 国产视频一区二区三区四区五区 | 欧美激情亚洲激情 | 国产精品一区二区三区在线 | 欧美一区二区三区 | 中文字幕不卡在线观看 | 欧美视频免费在线观看 | 蜜桃官网| 亚洲视频第一页 | 国产高清视频在线 | 一区二区视频在线 | 特一级毛片 | 亚洲国产精品久久久 | 黄色福利 | 久久久久国产精品 | 色视频在线播放 |