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流程設計器
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422988.html
標籤:其他
