Java 圖片裁剪,截取


maven依賴

        <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.2</version> </dependency> 

代碼

package ai.guiji.csdn.tool; import cn.hutool.core.util.IdUtil; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import org.bytedeco.javacpp.Loader; import java.io.File; import java.text.MessageFormat; import java.util.Arrays; import java.util.List; /** * java項目fhadmin.cn * 裁剪工具 @Version: V1.0 */ public class CutOutTool { /** * 圖片裁剪 * * @param imagePath 圖片地址 * @param outputDir 臨時目錄 * @param startX 裁剪起始x坐標 * @param startY 裁剪起始y坐標 * @param weight 裁剪寬度 * @param height 裁剪高度 * @throws Exception 異常 */ public static String cutOutImage( String imagePath, String outputDir, Integer startX, Integer startY, Integer weight, Integer height) throws Exception { List<String> paths = Splitter.on(".").splitToList(imagePath); String ext = paths.get(paths.size() - 1); if (!Arrays.asList("png", "jpg").contains(ext)) { throw new Exception("format error"); } String resultPath = Joiner.on(File.separator).join(Arrays.asList(outputDir, IdUtil.simpleUUID() + "." + ext)); String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class); ProcessBuilder builder = new ProcessBuilder( ffmpeg, "-i", imagePath, "-vf", MessageFormat.format( "crop={0}:{1}:{2}:{3}", String.valueOf(weight), String.valueOf(height), String.valueOf(startX), String.valueOf(startY)), "-y", resultPath); builder.inheritIO().start().waitFor(); return resultPath; } public static void main(String[] args) throws Exception { System.out.println( cutOutImage( "C:\\Users\\yi\\Desktop\\2054011.jpg", "C:\\Users\\yi\\Desktop\\", 0, 0, 1920, 2160)); } } 

代碼說明:

1、cutOutImage方法參數分別為圖片路徑、輸出臨時目錄、起始坐標x值、起始坐標y值、裁剪寬度、裁剪高度。

2、采用uuid作為臨時輸出唯一id,避免重復。

3、對文件后綴格式做了校驗,可以按照需求自行調整。

4、裁剪尺寸不能超出圖片限制,按照需求自行調整。

 

1.代碼生成器: [正反雙向](單表、主表、明細表、樹形表,快速開發利器)

freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本、處理類、service等完整模塊

2.多數據源:(支持同時連接無數個數據庫,可以不同的模塊連接不同數的據庫)支持N個數據源

3.阿里數據庫連接池druid,安全權限框架 shiro(菜單權限和按鈕權限), 緩存框架 ehcache

4.代碼編輯器,在線模版編輯,仿開發工具編輯器

5.調用攝像頭拍照 自定義裁剪編輯頭像,頭像圖片色度調節

6.websocket 及時站內信並聲音提醒、實時在線管理、websocket及時刷新頁面(完勝ajax技術)

7.Flowable工作流 目前公認比較好用的工作流引擎,集成web流程設計器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM