Java 圖片裁剪,擷取
aven依賴 <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、裁剪尺寸不能超出圖片限制,按照需求自行調整。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558068/viewspace-2854437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JAVA實現圖片裁剪Java
- 求擷取圖片等比公式公式
- js擷取影片的封面圖片JS
- TableView ScrollreView 截圖 擷取全屏 圖片模糊View
- 擷取圖片生成頭像外掛
- node平臺擷取圖片模組——jimp
- ios裁剪圖片iOS
- node上擷取圖片工具 images(node-images)
- octobercms 圖片裁剪外掛
- Web端裁剪圖片方法Web
- Python批次裁剪圖片Python
- 直播平臺原始碼,vue圖片中劃框擷取部分圖片原始碼Vue
- Vue圖片裁剪上傳元件Vue元件
- iOS-圖片水印,圖片裁剪和螢幕截圖iOS
- windows10怎樣裁剪圖片_Win10如何使用自帶工具裁剪圖片WindowsWin10
- ps裁剪工具怎麼自由裁剪 ps如何裁剪自己想要的圖片尺寸
- Bitmap擷取中間正方形並取出圓形圖片
- intervention/image 伺服器圖片裁剪伺服器
- 圖片裁剪上傳示例(node + react)React
- vue專案新增圖片裁剪元件Vue元件
- 圖片裁剪-文字識別-文字新增
- Android 開源圖片裁剪工具、圖片顯示工具分享Android
- ImageView長圖擷取部分展示View
- 微信小程式裁剪圖片成圓形微信小程式
- python 裁剪圖片;位深度不變Python
- Android 拍照、選擇圖片並裁剪Android
- Java爬蟲批量爬取圖片Java爬蟲
- Java——獲取圖片尺寸和大小Java
- win10系統如何擷取視訊片段儲存為圖片Win10
- win10系統如何擷取影片片段儲存為圖片Win10
- 呼叫系統檔案管理器選擇圖片,呼叫系統裁剪AIP對圖片處理,顯示裁剪之後的圖片...AI
- 基於React Hook實現圖片的裁剪ReactHook
- Flutter基礎-021-ClipOval圖片裁剪Flutter
- 微信小程式之裁剪圖片成圓形微信小程式
- 【譯】如何使用Android MediaStore裁剪大圖片AndroidAST
- 5 款最新的 jQuery 圖片裁剪外掛jQuery
- web技術分享| 圖片上傳與圖片裁剪結合 vue3WebVue
- 開源圖片工具箱(Img Toolbox) 格式轉換 新增水印 圖片壓縮 圖片裁剪 圖片旋轉 圖片縮放