日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

im4java 文档_im4java学习---阅读documentation文档

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 im4java 文档_im4java学习---阅读documentation文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Utilities----im提供的一些工具類

①、讀取圖片文件信息---Info類

我們之前的做法:

op.format("width:%w,height:%h,path:%d%f,size:%b%[EXIF:DateTimeOriginal]");

IdentifyCmd identifyCmd = new IdentifyCmd(useGM);

使用工具類Info:

Info imageInfo = new Info(filename,true);

System.out.println("Format: " + imageInfo.getImageFormat());

System.out.println("Width: " + imageInfo.getImageWidth());

System.out.println("Height: " + imageInfo.getImageHeight());

System.out.println("Geometry: " + imageInfo.getImageGeometry());

System.out.println("Depth: " + imageInfo.getImageDepth());

System.out.println("Class: " + imageInfo.getImageClass());

第二個參數true,表示只獲取圖片的基本信息。 ***這個工具類,在1.3.0版本之前,方法實現有問題。針對TIF和GIF圖片,

imageInfo.getImageWidth() 返回的是第一幀的圖片寬度(原文是first scene)

這個問題我也不懂,只是寫出來下,大家都注意下,詳細的還是看文檔吧。

②、讀取某個目錄下所有指定后綴的圖片文件---FilenameLoader類

你還在用這種批量圖片處理方式么?

public void resizeImages(String... pImageNames)

恭喜你,out了。嘿嘿,開玩笑^-^

讓我們來看下新的方法:

ExtensionFilter filter = new ExtensionFilter("jpg");//指定后綴

filter.setRecursion(true);//遞歸掃描

filter.ignoreDotDirs(true);//忽略那些帶點的隱藏目錄(此處是個人說法,看到過,Android手機里很多這目錄,但是不懂到底怎樣命名)

FilenameLoader loader = new FilenameLoader(filter);

List files = loader.loadFilenames(mydir);//mydir文件夾路徑

這個類在API文檔中有詳細介紹。

③、既然有批量轉換,我們也需要命令這一大堆目標文件的名稱---FilenamePatternResolver類

// define operation and command

IMOperation op = new IMOperation();

op.addImage(); // input-file

op.addImage(); // output-file

ConvertCmd cmd = new ConvertCmd();

// load files

ExtensionFilter filter = new ExtensionFilter("jpg");

FilenameLoader loader = new FilenameLoader(filter);

List files = loader.loadFilenames(mydir);

// create the resolver-----看這里,baby go

FilenamePatternResolver resolver =

new FilenamePatternResolver("%P/%f.tif");

// now iterate over all files

for (String img:files) {

cmd.run(op,img,resolver.createName(img));

}

個人理解:你不用每次都拼湊目標圖片名字了,有很便利的方法實現。

%P: full pathname of source-image (i.e. the directory)

%p: last component of %P(用于相對路徑?)

%F: full filename without directory part

%f: filename without directory part and extension

%e: only the extension

%D: drive-letter (on windows systems). Not available for source-files with an UNC-name.(盤符C:...)

這樣就好理解

new FilenamePatternResolver("%P/%f.tif");了,就是絕對目錄路徑+文件名+tif

④、Debugging--窩不是類,只是一種操作方法

版本號>1.0,這個一般都是成立的。

IMOperation op = new IMOperation();

...

ConvertCmd cmd = new ConvertCmd();

cmd.createScript("myscript.sh",op);

沒錯,就是它了。把最后要執行的cmd+op備份到myscrip.sht腳本中。

在windows下,createScript()生成的腳本會自動加上 .bat 后綴

⑤、批量轉換處理(適用于客戶端程序,不適合web-application)

ExtensionFilter filter = new ExtensionFilter("jpg");

filter.setRecursion(false);

FilenameLoader loader = new FilenameLoader(filter);

List images=loader.loadFilenames(dir);

After you have the list, you create your?BatchConverter?and use it's?run()-method to process the images:

// create a simple thumbnail operation

op = new IMOperation();

op.size(80);

op.addImage(); // placeholder input filename

op.thumbnail(80);

op.addImage(); // placeholder output filename

// create a template for the output-files:

// we put them in targetDir with the same filename as the original

// images

String template=targetDir+"%F";

// create instance of BatchConverter and convert images-----看這里,baby go

BatchConverter bc = new BatchConverter(BatchConverter.Mode.PARALLEL);

bc.run(op,images,targetDir+"%F");

BatchConverter有三種執行模式:BatchConverter.SEQUENTIAL,BatchConverter.PARALLEL,BatchConverter.BATCH。

分別為順序處理,并行處理(CPU多核),批處理(單核)

最后,還是推薦大家去看下官方英文文檔,本人水平有限,本著交流的精神,所以才發帖獻丑一番,主要是為了記錄自己的學習過程。

總結

以上是生活随笔為你收集整理的im4java 文档_im4java学习---阅读documentation文档的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。