Skip to content

Commit 14dfe30

Browse files
committed
🆕 #1685 小程序增加图像处理相关接口
1 parent 542b633 commit 14dfe30

File tree

12 files changed

+287
-114
lines changed

12 files changed

+287
-114
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpImgProcService.java renamed to weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxImgProcService.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package me.chanjar.weixin.mp.api;
1+
package me.chanjar.weixin.common.api;
22

33
import me.chanjar.weixin.common.error.WxErrorException;
4-
import me.chanjar.weixin.mp.bean.imgproc.WxMpImgProcAiCropResult;
5-
import me.chanjar.weixin.mp.bean.imgproc.WxMpImgProcQrCodeResult;
6-
import me.chanjar.weixin.mp.bean.imgproc.WxMpImgProcSuperResolutionResult;
4+
import me.chanjar.weixin.common.bean.imgproc.WxImgProcAiCropResult;
5+
import me.chanjar.weixin.common.bean.imgproc.WxImgProcQrCodeResult;
6+
import me.chanjar.weixin.common.bean.imgproc.WxImgProcSuperResolutionResult;
77

88
import java.io.File;
99

@@ -13,7 +13,7 @@
1313
*
1414
* @author Theo Nie
1515
*/
16-
public interface WxMpImgProcService {
16+
public interface WxImgProcService {
1717

1818
/**
1919
* 二维码/条码识别接口
@@ -27,7 +27,7 @@ public interface WxMpImgProcService {
2727
* @return WxMpImgProcQrCodeResult
2828
* @throws WxErrorException .
2929
*/
30-
WxMpImgProcQrCodeResult qrCode(String imgUrl) throws WxErrorException;
30+
WxImgProcQrCodeResult qrCode(String imgUrl) throws WxErrorException;
3131

3232
/**
3333
* 二维码/条码识别接口
@@ -41,7 +41,7 @@ public interface WxMpImgProcService {
4141
* @return WxMpImgProcQrCodeResult
4242
* @throws WxErrorException .
4343
*/
44-
WxMpImgProcQrCodeResult qrCode(File imgFile) throws WxErrorException;
44+
WxImgProcQrCodeResult qrCode(File imgFile) throws WxErrorException;
4545

4646
/**
4747
* 图片高清化接口
@@ -55,7 +55,7 @@ public interface WxMpImgProcService {
5555
* @return WxMpImgProcSuperResolutionResult
5656
* @throws WxErrorException .
5757
*/
58-
WxMpImgProcSuperResolutionResult superResolution(String imgUrl) throws WxErrorException;
58+
WxImgProcSuperResolutionResult superResolution(String imgUrl) throws WxErrorException;
5959

6060
/**
6161
* 图片高清化接口
@@ -69,7 +69,7 @@ public interface WxMpImgProcService {
6969
* @return WxMpImgProcSuperResolutionResult
7070
* @throws WxErrorException .
7171
*/
72-
WxMpImgProcSuperResolutionResult superResolution(File imgFile) throws WxErrorException;
72+
WxImgProcSuperResolutionResult superResolution(File imgFile) throws WxErrorException;
7373

7474
/**
7575
* 图片智能裁剪接口
@@ -81,7 +81,7 @@ public interface WxMpImgProcService {
8181
* @return WxMpImgProcAiCropResult
8282
* @throws WxErrorException .
8383
*/
84-
WxMpImgProcAiCropResult aiCrop(String imgUrl) throws WxErrorException;
84+
WxImgProcAiCropResult aiCrop(String imgUrl) throws WxErrorException;
8585

8686
/**
8787
* 图片智能裁剪接口
@@ -93,7 +93,7 @@ public interface WxMpImgProcService {
9393
* @return WxMpImgProcAiCropResult
9494
* @throws WxErrorException .
9595
*/
96-
WxMpImgProcAiCropResult aiCrop(String imgUrl, String ratios) throws WxErrorException;
96+
WxImgProcAiCropResult aiCrop(String imgUrl, String ratios) throws WxErrorException;
9797

9898
/**
9999
* 图片智能裁剪接口
@@ -105,7 +105,7 @@ public interface WxMpImgProcService {
105105
* @return WxMpImgProcAiCropResult
106106
* @throws WxErrorException .
107107
*/
108-
WxMpImgProcAiCropResult aiCrop(File imgFile) throws WxErrorException;
108+
WxImgProcAiCropResult aiCrop(File imgFile) throws WxErrorException;
109109

110110
/**
111111
* 图片智能裁剪接口
@@ -117,5 +117,5 @@ public interface WxMpImgProcService {
117117
* @return WxMpImgProcAiCropResult
118118
* @throws WxErrorException .
119119
*/
120-
WxMpImgProcAiCropResult aiCrop(File imgFile, String ratios) throws WxErrorException;
120+
WxImgProcAiCropResult aiCrop(File imgFile, String ratios) throws WxErrorException;
121121
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package me.chanjar.weixin.mp.bean.imgproc;
1+
package me.chanjar.weixin.common.bean.imgproc;
22

33
import com.google.gson.annotations.SerializedName;
44
import lombok.Data;
5-
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
5+
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
66

77
import java.io.Serializable;
88
import java.util.List;
@@ -11,50 +11,59 @@
1111
* @author Theo Nie
1212
*/
1313
@Data
14-
public class WxMpImgProcAiCropResult implements Serializable {
14+
public class WxImgProcAiCropResult implements Serializable {
1515
private static final long serialVersionUID = -6470673963772979463L;
1616

1717
@SerializedName("img_size")
1818
private ImgSize imgSize;
19+
1920
@SerializedName("results")
2021
private List<Results> results;
2122

2223
@Override
2324
public String toString() {
24-
return WxMpGsonBuilder.create().toJson(this);
25+
return WxGsonBuilder.create().toJson(this);
2526
}
2627

27-
public static WxMpImgProcAiCropResult fromJson(String json) {
28-
return WxMpGsonBuilder.create().fromJson(json, WxMpImgProcAiCropResult.class);
28+
public static WxImgProcAiCropResult fromJson(String json) {
29+
return WxGsonBuilder.create().fromJson(json, WxImgProcAiCropResult.class);
2930
}
3031

3132
@Data
32-
public static class ImgSize {
33+
public static class ImgSize implements Serializable {
34+
private static final long serialVersionUID = -6470673963772979463L;
35+
3336
@SerializedName("w")
3437
private int w;
38+
3539
@SerializedName("h")
3640
private int h;
3741

3842
@Override
3943
public String toString() {
40-
return WxMpGsonBuilder.create().toJson(this);
44+
return WxGsonBuilder.create().toJson(this);
4145
}
4246
}
4347

4448
@Data
45-
public static class Results {
49+
public static class Results implements Serializable {
50+
private static final long serialVersionUID = -6470673963772979463L;
51+
4652
@SerializedName("crop_left")
4753
private int cropLeft;
54+
4855
@SerializedName("crop_top")
4956
private int cropTop;
57+
5058
@SerializedName("crop_right")
5159
private int cropRight;
60+
5261
@SerializedName("crop_bottom")
5362
private int cropBottom;
5463

5564
@Override
5665
public String toString() {
57-
return WxMpGsonBuilder.create().toJson(this);
66+
return WxGsonBuilder.create().toJson(this);
5867
}
5968
}
6069
}
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,103 @@
1-
package me.chanjar.weixin.mp.bean.imgproc;
1+
package me.chanjar.weixin.common.bean.imgproc;
22

33
import com.google.gson.annotations.SerializedName;
44
import lombok.Data;
5-
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
5+
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
66

77
import java.io.Serializable;
88
import java.util.List;
99

1010
/**
1111
* 二维码/条码识别返回结果
12+
*
1213
* @author Theo Nie
1314
*/
1415
@Data
15-
public class WxMpImgProcQrCodeResult implements Serializable {
16-
16+
public class WxImgProcQrCodeResult implements Serializable {
1717
private static final long serialVersionUID = -1194154790100866123L;
18+
1819
@SerializedName("img_size")
1920
private ImgSize imgSize;
21+
2022
@SerializedName("code_results")
2123
private List<CodeResults> codeResults;
2224

2325
@Data
24-
public static class ImgSize implements Serializable{
26+
public static class ImgSize implements Serializable {
2527
private static final long serialVersionUID = -8847603245514017839L;
28+
2629
@SerializedName("w")
2730
private int w;
2831
@SerializedName("h")
2932
private int h;
3033

3134
@Override
3235
public String toString() {
33-
return WxMpGsonBuilder.create().toJson(this);
36+
return WxGsonBuilder.create().toJson(this);
3437
}
3538
}
3639

3740
@Data
38-
public static class CodeResults implements Serializable{
41+
public static class CodeResults implements Serializable {
3942
private static final long serialVersionUID = -6138135951229076759L;
43+
4044
@SerializedName("type_name")
4145
private String typeName;
46+
4247
@SerializedName("data")
4348
private String data;
49+
4450
@SerializedName("pos")
4551
private Pos pos;
4652

4753
@Override
4854
public String toString() {
49-
return WxMpGsonBuilder.create().toJson(this);
55+
return WxGsonBuilder.create().toJson(this);
5056
}
5157

5258
@Data
53-
public static class Pos implements Serializable{
59+
public static class Pos implements Serializable {
5460
private static final long serialVersionUID = 7754894061212819602L;
5561
@SerializedName("left_top")
5662
private Coordinate leftTop;
63+
5764
@SerializedName("right_top")
5865
private Coordinate rightTop;
66+
5967
@SerializedName("right_bottom")
6068
private Coordinate rightBottom;
69+
6170
@SerializedName("left_bottom")
6271
private Coordinate leftBottom;
6372

6473
@Override
6574
public String toString() {
66-
return WxMpGsonBuilder.create().toJson(this);
75+
return WxGsonBuilder.create().toJson(this);
6776
}
6877

6978
@Data
70-
public static class Coordinate implements Serializable{
79+
public static class Coordinate implements Serializable {
7180
private static final long serialVersionUID = 8930443668927359677L;
7281
@SerializedName("x")
7382
private int x;
83+
7484
@SerializedName("y")
7585
private int y;
7686

7787
@Override
7888
public String toString() {
79-
return WxMpGsonBuilder.create().toJson(this);
89+
return WxGsonBuilder.create().toJson(this);
8090
}
8191
}
8292
}
8393
}
8494

85-
public static WxMpImgProcQrCodeResult fromJson(String json) {
86-
return WxMpGsonBuilder.create().fromJson(json, WxMpImgProcQrCodeResult.class);
95+
public static WxImgProcQrCodeResult fromJson(String json) {
96+
return WxGsonBuilder.create().fromJson(json, WxImgProcQrCodeResult.class);
8797
}
8898

8999
@Override
90100
public String toString() {
91-
return WxMpGsonBuilder.create().toJson(this);
101+
return WxGsonBuilder.create().toJson(this);
92102
}
93103
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package me.chanjar.weixin.common.bean.imgproc;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* 图片高清化返回结果
11+
* @author Theo Nie
12+
*/
13+
@Data
14+
public class WxImgProcSuperResolutionResult implements Serializable {
15+
private static final long serialVersionUID = 8007440280170407021L;
16+
17+
@SerializedName("media_id")
18+
private String mediaId;
19+
20+
@Override
21+
public String toString() {
22+
return WxGsonBuilder.create().toJson(this);
23+
}
24+
25+
public static WxImgProcSuperResolutionResult fromJson(String json) {
26+
return WxGsonBuilder.create().fromJson(json, WxImgProcSuperResolutionResult.class);
27+
}
28+
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
44
import cn.binarywang.wx.miniapp.config.WxMaConfig;
5+
import me.chanjar.weixin.common.api.WxImgProcService;
56
import me.chanjar.weixin.common.api.WxOcrService;
67
import me.chanjar.weixin.common.error.WxErrorException;
78
import me.chanjar.weixin.common.service.WxService;
@@ -295,4 +296,12 @@ public interface WxMaService extends WxService {
295296
* @return 。
296297
*/
297298
WxOcrService getOcrService();
299+
300+
/**
301+
* 返回图像处理接口的实现类对象,以方便调用其各个接口.
302+
*
303+
* @return WxImgProcService
304+
*/
305+
WxImgProcService getImgProcService();
306+
298307
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.google.gson.Gson;
99
import com.google.gson.JsonObject;
1010
import lombok.extern.slf4j.Slf4j;
11+
import me.chanjar.weixin.common.api.WxImgProcService;
1112
import me.chanjar.weixin.common.enums.WxType;
1213
import me.chanjar.weixin.common.api.WxOcrService;
1314
import me.chanjar.weixin.common.bean.WxAccessToken;
@@ -59,6 +60,7 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
5960
private final WxMaLiveService liveService = new WxMaLiveServiceImpl(this);
6061
private final WxMaLiveGoodsService liveGoodsService = new WxMaLiveGoodsServiceImpl(this);
6162
private final WxOcrService ocrService = new WxMaOcrServiceImpl(this);
63+
private final WxImgProcService imgProcService = new WxMaImgProcServiceImpl(this);
6264

6365
private int retrySleepMillis = 1000;
6466
private int maxRetryTimes = 5;
@@ -408,4 +410,9 @@ public WxOcrService getOcrService() {
408410
return this.ocrService;
409411
}
410412

413+
@Override
414+
public WxImgProcService getImgProcService() {
415+
return this.imgProcService;
416+
}
417+
411418
}

0 commit comments

Comments
 (0)