成人免费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

2025-06-05 00:00:00

項目接口合并

2022-12-29 08:43:43

項目接口請求

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技術棧公眾號

主站蜘蛛池模板: 欧美黄色一区 | 成人亚洲在线 | 欧美日韩高清在线一区 | 国产精品一区一区三区 | 国产成人精品久久二区二区 | 99福利视频| 激情五月婷婷综合 | 亚洲综合国产精品 | 国产三级一区二区 | 天天爽网站 | 日本不卡一区 | 性色的免费视频 | 成人三级视频在线观看 | 欧美综合网 | 99爱在线免费观看 | 精品欧美激情精品一区 | 久久综合久久久 | 中文成人无字幕乱码精品 | 日本视频在线播放 | 亚洲一区二区在线播放 | 日本在线视 | 欧美久久久久久久 | 亚洲人成人一区二区在线观看 | 国产三级一区二区三区 | 精品欧美色视频网站在线观看 | 一级片子 | 日韩高清一区 | 看羞羞视频免费 | 一区二区在线免费观看视频 | 欧美一区二区三区一在线观看 | 久久91精品国产 | 亚洲欧美激情四射 | 韩国av电影网 | 国产中文 | 成人激情视频网 | 精品在线 | japanhd成人 | 成人av一区| 亚洲区视频| 91精品国产91久久久久游泳池 | 精品一区久久 |