傅行帆 vor 6 Jahren
Ursprung
Commit
5189750d67

+ 246
- 10
CODE/smart-community/app-api/src/main/java/com/community/huiju/common/hk/HKOpenApi.java Datei anzeigen

@@ -5,8 +5,6 @@ import com.community.commom.hk.HttpClientSSLUtils;
5 5
 import com.google.common.collect.Maps;
6 6
 import lombok.extern.slf4j.Slf4j;
7 7
 import net.coobird.thumbnailator.Thumbnails;
8
-import org.slf4j.Logger;
9
-import org.slf4j.LoggerFactory;
10 8
 import org.springframework.web.multipart.MultipartFile;
11 9
 import java.io.*;
12 10
 import com.community.commom.hk.Digests;
@@ -19,7 +17,6 @@ import java.util.Map;
19 17
  */
20 18
 @Slf4j
21 19
 public class HKOpenApi {
22
-    private static Logger logger = LoggerFactory.getLogger(PicUtils.class);
23 20
 
24 21
     public static String getMonitoryPoint(Map<String,Object> map){
25 22
         Map<String,Object> parMap = Maps.newHashMap();
@@ -53,13 +50,16 @@ public class HKOpenApi {
53 50
      */
54 51
     public static String getPicSuffix(String img_path){
55 52
         if (img_path == null || img_path.indexOf(".") == -1){
56
-            return ""; //如果图片地址为null或者地址中没有"."就返回""
53
+            //如果图片地址为null或者地址中没有"."就返回""
54
+            return "";
57 55
         }
58 56
         return img_path.substring(img_path.lastIndexOf(".") + 1).
59 57
                 trim().toLowerCase();
60 58
     }
61
-
62
-    //将本地图片进行Base64位编码
59
+    
60
+    /**
61
+     * 将本地图片进行Base64位编码
62
+     */
63 63
     public static String getImgStr(MultipartFile imgFile){
64 64
         //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
65 65
         byte[] data = null;
@@ -74,8 +74,12 @@ public class HKOpenApi {
74 74
         }
75 75
         return new String(org.apache.commons.codec.binary.Base64.encodeBase64(data));
76 76
     }
77
-
78
-    //将本地图片进行Base64位编码
77
+    
78
+    /**
79
+     * 将本地图片进行Base64位编码
80
+     * @param fileBytes
81
+     * @return
82
+     */
79 83
     public static String getImgStr(byte [] fileBytes) {
80 84
         return new String(org.apache.commons.codec.binary.Base64.encodeBase64(fileBytes));
81 85
     }
@@ -137,10 +141,10 @@ public class HKOpenApi {
137 141
                         .toOutputStream(outputStream);
138 142
                 imageBytes = outputStream.toByteArray();
139 143
             }
140
-            logger.info("【图片压缩】imageId={} | 图片原大小={}kb | 压缩后大小={}kb",
144
+            log.info("【图片压缩】imageId={} | 图片原大小={}kb | 压缩后大小={}kb",
141 145
                     imageId, srcSize / 1024, imageBytes.length / 1024);
142 146
         } catch (Exception e) {
143
-            logger.error("【图片压缩】msg=图片压缩失败!", e);
147
+            log.error("【图片压缩】msg=图片压缩失败!", e);
144 148
         }
145 149
         return imageBytes;
146 150
     }
@@ -196,6 +200,238 @@ public class HKOpenApi {
196 200
 
197 201
         return data;
198 202
     }
203
+    
204
+    
205
+    /**
206
+     * 根据中心UUID集获取中心下的门禁设备信息
207
+     *
208
+     * @return
209
+     */
210
+    public static String getACDevicesByUnitUuids(){
211
+        Map<String,Object> parMap = Maps.newHashMap();
212
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.ITF_MONITORY_POINT;
213
+        //设置APPKEY
214
+        parMap.put("appkey", HKConstant.APPKEY);
215
+        //设置时间参数
216
+        parMap.put("time", System.currentTimeMillis());
217
+        parMap.put("pageNo",1);
218
+        parMap.put("pageSize",10);
219
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
220
+        parMap.put("unitUuids","1048576");
221
+        String params =  JSON.toJSONString(parMap);
222
+        log.info("获取中心UUID集获取中心下的门禁设备请求参数:{}", params);
223
+        String data = null;
224
+        try {
225
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
226
+            log.info("获取 中心UUID集获取中心下的门禁设备 请求返回结果:{}",data);
227
+        } catch (Exception e) {
228
+            e.printStackTrace();
229
+            log.error("获取失败!",e);
230
+        }
231
+        
232
+        return data;
233
+    }
234
+    
235
+    /**
236
+     * 分页获取门禁点信息。
237
+     *
238
+     * @return
239
+     */
240
+    public static String getDoors(){
241
+        Map<String,Object> parMap = Maps.newHashMap();
242
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.ITF_MONITORY_POINT;
243
+        //设置APPKEY
244
+        parMap.put("appkey", HKConstant.APPKEY);
245
+        //设置时间参数
246
+        parMap.put("time", System.currentTimeMillis());
247
+        parMap.put("pageNo",1);
248
+        parMap.put("pageSize",10);
249
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
250
+        String params =  JSON.toJSONString(parMap);
251
+        log.info("分页获取门禁点信息请求参数:{}", params);
252
+        String data = null;
253
+        try {
254
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
255
+            log.info("分页获取门禁点信息 请求返回结果:{}",data);
256
+        } catch (Exception e) {
257
+            e.printStackTrace();
258
+            log.error("获取失败!",e);
259
+        }
260
+        
261
+        return data;
262
+    }
263
+    
264
+    /**
265
+     * 批量获取控制中心信息,多个中心的UUID用“,”分割组成的字符串。
266
+     *
267
+     * @return
268
+     */
269
+    public static String getUnitsByUuids(){
270
+        Map<String,Object> parMap = Maps.newHashMap();
271
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.ITF_MONITORY_POINT;
272
+        //设置APPKEY
273
+        parMap.put("appkey", HKConstant.APPKEY);
274
+        //设置时间参数
275
+        parMap.put("time", System.currentTimeMillis());
276
+        parMap.put("pageNo",1);
277
+        parMap.put("pageSize",10);
278
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
279
+        parMap.put("unitUuids","1048576");
280
+        String params =  JSON.toJSONString(parMap);
281
+        log.info("获取控制中心信息请求参数:{}", params);
282
+        String data = null;
283
+        try {
284
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
285
+            log.info("获取控制中心信息 请求返回结果:{}",data);
286
+        } catch (Exception e) {
287
+            e.printStackTrace();
288
+            log.error("获取失败!",e);
289
+        }
290
+        
291
+        return data;
292
+    }
293
+    
294
+    /**
295
+     *  根据中心UUID分页获取下级区域
296
+     * @return
297
+     */
298
+    public static String getRegionsByUnitUuid(){
299
+        Map<String,Object> parMap = Maps.newHashMap();
300
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.ITF_MONITORY_POINT;
301
+        //设置APPKEY
302
+        parMap.put("appkey", HKConstant.APPKEY);
303
+        //设置时间参数
304
+        parMap.put("time", System.currentTimeMillis());
305
+        parMap.put("pageNo",1);
306
+        parMap.put("pageSize",10);
307
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
308
+        parMap.put("parentUuid","1048576");
309
+        parMap.put("allChildren",1);
310
+        String params =  JSON.toJSONString(parMap);
311
+        log.info("根据中心UUID分页获取下级区域请求参数:{}", params);
312
+        String data = null;
313
+        try {
314
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
315
+            log.info("根据中心UUID分页获取下级区域 请求返回结果:{}",data);
316
+        } catch (Exception e) {
317
+            e.printStackTrace();
318
+            log.error("获取失败!",e);
319
+        }
320
+        
321
+        return data;
322
+    }
323
+    
324
+    /**
325
+     * 根据区域UUID集获取门禁点
326
+     * @return
327
+     */
328
+    public static String getDoorsByRegionUuids(){
329
+        Map<String,Object> parMap = Maps.newHashMap();
330
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.DOORS_BY_REGION_UUIDS;
331
+        //设置APPKEY
332
+        parMap.put("appkey", HKConstant.APPKEY);
333
+        //设置时间参数
334
+        parMap.put("time", System.currentTimeMillis());
335
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
336
+        parMap.put("regionUuids","2a36878c9a4a49d290d253ac1b4746dc");
337
+        String params =  JSON.toJSONString(parMap);
338
+        log.info("根据区域UUID集获取门禁点请求参数:{}", params);
339
+        String data = null;
340
+        try {
341
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
342
+            log.info("根据区域UUID集获取门禁点 请求返回结果:{}",data);
343
+        } catch (Exception e) {
344
+            e.printStackTrace();
345
+            log.error("获取失败!",e);
346
+        }
347
+        
348
+        return data;
349
+    }
350
+    
351
+    /**
352
+     * 根据人员ID集添加权限
353
+     * @return
354
+     */
355
+    public static String addAuthoritiesByPersonIds(String personIds){
356
+        Map<String,Object> parMap = Maps.newHashMap();
357
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.ADD_AUTHORITIES_BY_PERSONIDS;
358
+        //设置APPKEY
359
+        parMap.put("appkey", HKConstant.APPKEY);
360
+        //设置时间参数
361
+        parMap.put("time", System.currentTimeMillis());
362
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
363
+        parMap.put("personIds",personIds);
364
+        parMap.put("doorGroupUuids","");
365
+        parMap.put("doorUuids","57231a05fd3b45f7a2570a28a85821c4,efcb9a3fe4e64e2f9c0f546c54465524,9da7c0073138453fa7782b629743cff7,85c22fde220d4b35ac13f805f05fd04c");
366
+        String params =  JSON.toJSONString(parMap);
367
+        log.info("根据人员ID集添加权限请求参数:{}", params);
368
+        String data = null;
369
+        try {
370
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
371
+            log.info("根据人员ID集添加权限 请求返回结果:{}",data);
372
+        } catch (Exception e) {
373
+            e.printStackTrace();
374
+            log.error("获取失败!",e);
375
+        }
376
+        
377
+        return data;
378
+    }
379
+    
380
+    /**
381
+     * 根据设备UUID集异动下载门禁权限
382
+     * @return
383
+     */
384
+    public static String downloadAuthorityByDeviceUuids(){
385
+        Map<String,Object> parMap = Maps.newHashMap();
386
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.DOWNLOAD_AUTHORITY_BY_DEVICEUUIDS;
387
+        //设置APPKEY
388
+        parMap.put("appkey", HKConstant.APPKEY);
389
+        //设置时间参数
390
+        parMap.put("time", System.currentTimeMillis());
391
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
392
+        parMap.put("deviceUuids","57231a05fd3b45f7a2570a28a85821c4,efcb9a3fe4e64e2f9c0f546c54465524,9da7c0073138453fa7782b629743cff7,85c22fde220d4b35ac13f805f05fd04c");
393
+        String params =  JSON.toJSONString(parMap);
394
+        log.info("根据设备UUID集异动下载门禁权限请求参数:{}", params);
395
+        String data = null;
396
+        try {
397
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
398
+            log.info("根据设备UUID集异动下载门禁权限 请求返回结果:{}",data);
399
+        } catch (Exception e) {
400
+            e.printStackTrace();
401
+            log.error("获取失败!",e);
402
+        }
403
+        
404
+        return data;
405
+    }
406
+    
407
+    /**
408
+     * 指定人员人脸/指纹权限下载
409
+     * @return
410
+     */
411
+    public static String downloadFaceAndFingerInfos(String personIds){
412
+        Map<String,Object> parMap = Maps.newHashMap();
413
+        String url = HKConstant.OPENAPI_IP_PORT_HTTP + HKConstant.DOWNLOAD_FACE_AND_FINGERINFOS;
414
+        //设置APPKEY
415
+        parMap.put("appkey", HKConstant.APPKEY);
416
+        //设置时间参数
417
+        parMap.put("time", System.currentTimeMillis());
418
+        parMap.put("opUserUuid",HKConstant.OP_USER_UUID);
419
+        parMap.put("deviceUuids","83dfab0eef52411d991d6e621296b60a,dfd80b22f00545b8b36fa981019df83c");
420
+        parMap.put("personIds",personIds);
421
+        parMap.put("type",1);
422
+        String params =  JSON.toJSONString(parMap);
423
+        log.info("指定人员人脸/指纹权限下载 请求参数:{}", params);
424
+        String data = null;
425
+        try {
426
+            data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, HKConstant.SECRET), params);
427
+            log.info("指定人员人脸/指纹权限下载 请求返回结果:{}",data);
428
+        } catch (Exception e) {
429
+            e.printStackTrace();
430
+            log.error("获取失败!",e);
431
+        }
432
+        
433
+        return data;
434
+    }
199 435
 
200 436
 
201 437
     public static void main(String[] args) {

+ 0
- 175
CODE/smart-community/app-api/src/main/java/com/community/huiju/common/hk/test/OpenapiTest.java Datei anzeigen

@@ -1,175 +0,0 @@
1
-package com.community.huiju.common.hk.test;
2
-
3
-import java.util.HashMap;
4
-import java.util.Map;
5
-
6
-import com.alibaba.fastjson.JSON;
7
-import com.community.commom.hk.Digests;
8
-import com.community.commom.hk.HttpClientSSLUtils;
9
-
10
-
11
-/**
12
- * openapi 测试DEMO
13
- * 客户开发的时候可以参考此代码编写自己的应用
14
- * 也可以使用demo中的jar包,不过jar包使用务必使用全套,
15
- * 万不可只取其中一部分,避免依赖破坏
16
- * @author shengyiling
17
- *
18
- */
19
-class OpenapiTest {
20
-	
21
-	/**
22
-	 * APPKEY需要到部署的平台服务器上生成。
23
-	 * <p>
24
-	 * 调用Openpai的操作码,需要去平台上生成,详见《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中[获取AppKey和Secret]章节说明
25
-	 * </p>
26
-	 * <p>
27
-	 * 《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》 该文档请找技术支持或者交付的同事提供
28
-	 * </p>
29
-	 */
30
-	private static final String APPKEY = "b4434b13";
31
-	
32
-	/**
33
-	 * SECRET需要到部署的平台服务器上生成。
34
-	 * <p>
35
-	 * 调用Openpai的操作码,需要去平台上生成,详见《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中[获取AppKey和Secret]章节说明
36
-	 * </p>
37
-	 * <p>
38
-	 * 《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》 该文档请找技术支持或者交付的同事提供
39
-	 * </p>
40
-	 */
41
-	private static final String SECRET = "64a1f32d53784ce2a34bd81822db1b91";
42
-	
43
-	
44
-	/**
45
-	 * http请求地址
46
-	 * <p>openapi的地址,默认情况下openapi的IP端口与基础应用的IP端口是一致的</p>
47
-	 * <p>请将地址配置正确.</p>
48
-	 * <p>默认情况下是127.0.0.1:80 ,如果地址不通请根据实际情况修改IP端口</p>
49
- 	 */
50
-	private static final String OPENAPI_IP_PORT_HTTP = "http://192.168.0.122";
51
-	
52
-	/**
53
-	 * https请求地址
54
-	 * <p>openapi的地址,默认情况下openapi的IP端口与基础应用的IP端口是一致的</p>
55
-	 * <p>请将地址配置正确.</p>
56
-	 * <p>默认情况下是127.0.0.1:443 ,如果地址不通请根据实际情况修改IP端口</p>
57
- 	 */
58
-	private static final String OPENAPI_IP_PORT_HTTPS = "https://127.0.0.1:443";
59
-	
60
-	/**
61
-	 * 获取默认用户UUID的接口地址,此地址可以从《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中具体的接口说明上获取
62
-	 */
63
-	private static final String ITF_ADDRESS_GET_DEFAULT_USER_UUID = "/openapi/service/base/user/getDefaultUserUuid";
64
-	
65
-	/**
66
-	 * 分页获取监控点信息的接口地址,此地址可以从《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中具体的接口说明上获取
67
-	 */
68
-	private static final String ITF_ADDRESS_GET_CAMERAS = "/openapi/service/vss/res/getCameras";
69
-	
70
-	/**
71
-	 * <p>操作用户UUID,即用户UUID,首次使用操作用户UUID可以通过接口 [获取默认用户UUID]来获取</p>
72
-	 * <p>也可以通过接口[分页获取用户]来获取</p>
73
-	 */
74
-//	private static final String OP_USER_UUID = "0be83d40695011e7981e0f190ed6d2e7";
75
-	private static final String OP_USER_UUID = "5b2eb534696b11e89c2e438f92627767";
76
-	
77
-	/**
78
-	 * 测试方法
79
-	 * @param args
80
-	 * @throws Exception
81
-	 */
82
-	public static void main(String[] args) throws Exception {
83
-
84
-		/***http方式调用***/
85
-		//System.out.println(testGetDefaultUserUUID());
86
-		System.out.println(testGetCameras());
87
-//		
88
-//		/***https方式调用***/
89
-//		System.out.println(testGetDefaultUserUUID_Https());
90
-//		System.out.println(testGetCameras_Https());
91
-	}
92
-	
93
-	/**
94
-	 * HTTP方式
95
-	 * 获取默认用户UUID 测试
96
-	 * @return
97
-	 * @throws Exception
98
-	 */
99
-	private static String testGetDefaultUserUUID() throws Exception{
100
-		String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_DEFAULT_USER_UUID;
101
-		Map<String, Object> map = new HashMap<String, Object>();
102
-		map.put("appkey", APPKEY);//设置APPKEY
103
-		map.put("time", System.currentTimeMillis());//设置时间参数
104
-		String params =  JSON.toJSONString(map);
105
-		System.out.println(" ====== testGetDefaultUserUUID 请求参数:【" + params + "】");
106
-		String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, SECRET), params);
107
-		System.out.println(" ====== testGetDefaultUserUUID 请求返回结果:【{" + data + "}】");
108
-		
109
-		return data;
110
-	}
111
-	
112
-	/** 
113
-	 * HTTP方式
114
-	 * 分页获取监控点信息 测试
115
-	 * @return
116
-	 * @throws Exception
117
-	 */
118
-	private static String testGetCameras() throws Exception{
119
-		 String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_CAMERAS;
120
-        Map<String, Object> map = new HashMap<String, Object>();
121
-        map.put("appkey", APPKEY);//设置APPKEY
122
-        map.put("time", System.currentTimeMillis());//设置时间参数
123
-        map.put("pageNo", 1);//设置分页参数
124
-        map.put("pageSize", 5);//设置分页参数
125
-        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
126
-        String params = JSON.toJSONString(map);
127
-        System.out.println(" ====== getCameras请求参数:【" + params + "】");
128
-        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
129
-        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
130
-        
131
-        return data;
132
-	}
133
-	
134
-	/**
135
-	 * HTTPS方式
136
-	 * 获取默认用户UUID 测试
137
-	 * @return
138
-	 * @throws Exception
139
-	 */
140
-	private static String testGetDefaultUserUUID_Https() throws Exception{
141
-		String url = OPENAPI_IP_PORT_HTTPS + ITF_ADDRESS_GET_DEFAULT_USER_UUID;
142
-		Map<String, Object> map = new HashMap<String, Object>();
143
-		map.put("appkey", APPKEY);//设置APPKEY
144
-		map.put("time", System.currentTimeMillis());//设置时间参数
145
-		String params =  JSON.toJSONString(map);
146
-		System.out.println("============" + params + "============");
147
-		String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
148
-		System.out.println("============" + data + "============");
149
-		
150
-		return data;
151
-	}
152
-	
153
-	/**
154
-	 * HTTPS方式
155
-	 * 分页获取监控点信息 测试
156
-	 * @return
157
-	 * @throws Exception
158
-	 */
159
-	private static String testGetCameras_Https() throws Exception{
160
-		 String url = OPENAPI_IP_PORT_HTTPS + ITF_ADDRESS_GET_CAMERAS;
161
-        Map<String, Object> map = new HashMap<String, Object>();
162
-        map.put("appkey", APPKEY);//设置APPKEY
163
-        map.put("time", System.currentTimeMillis());//设置时间参数
164
-        map.put("pageNo", 1);//设置分页参数
165
-        map.put("pageSize", 5);//设置分页参数
166
-        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
167
-        String params = JSON.toJSONString(map);
168
-        System.out.println(" ====== getCameras请求参数:【" + params + "】");
169
-        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
170
-        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
171
-        
172
-        return data;
173
-	}
174
-	
175
-}

+ 0
- 90
CODE/smart-community/app-api/src/main/java/com/community/huiju/common/hk/test/OpenapiUtil.java Datei anzeigen

@@ -1,90 +0,0 @@
1
-package com.community.huiju.common.hk.test;
2
-
3
-import java.awt.image.BufferedImage;
4
-import java.io.ByteArrayOutputStream;
5
-import java.io.File;
6
-import java.io.FileOutputStream;
7
-import java.io.IOException;
8
-import java.net.MalformedURLException;
9
-import java.net.URL;
10
-import java.util.Base64;
11
-import java.util.Base64.Decoder;
12
-import java.util.Base64.Encoder;
13
-
14
-import javax.imageio.ImageIO;
15
-
16
-/**
17
- * Openapi接口调用过程中会用到的一些工具方法
18
- * @author shengyiling
19
- *
20
- */
21
-public class OpenapiUtil {
22
-
23
-	/**
24
-	 * BASE64加密网络图片,返回加密之后的字符串
25
-	 * @param imageUrl 图片的绝对地址
26
-	 * @param extensioName 图片的扩展名,例如 jpg、bmp等
27
-	 * @return 加密之后的字符串
28
-	 */
29
-	public static String encodeImage2Base64(URL imageUrl, String extensioName){
30
-
31
-		ByteArrayOutputStream outputStream = null;
32
-        try {  
33
-            BufferedImage bufferedImage = ImageIO.read(imageUrl);  //读取网络图片
34
-            outputStream = new ByteArrayOutputStream();  //文件输出流
35
-            ImageIO.write(bufferedImage, extensioName, outputStream);  
36
-        } catch (MalformedURLException e1) {  
37
-            e1.printStackTrace();  
38
-        } catch (IOException e) {  
39
-            e.printStackTrace();  
40
-        }  
41
-        Encoder encoder = Base64.getEncoder();
42
-        
43
-        return encoder.encodeToString(outputStream.toByteArray());// 返回Base64编码过的字节数组字符串  
44
-	}
45
-	
46
-	/** 
47
-     * 将本地图片进行Base64位编码 
48
-     *
49
-     *            图片的url路径,如http://.....xx.jpg 
50
-     * @param extensioName 图片的扩展名
51
-     * @return 加密之后的字符串
52
-     */  
53
-    public static String encodeImgageToBase64(File imageFile, String extensioName) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
54
-        ByteArrayOutputStream outputStream = null;  
55
-        try {  
56
-            BufferedImage bufferedImage = ImageIO.read(imageFile);  
57
-            outputStream = new ByteArrayOutputStream();  
58
-            ImageIO.write(bufferedImage, extensioName, outputStream);  
59
-        } catch (MalformedURLException e1) {  
60
-            e1.printStackTrace();  
61
-        } catch (IOException e) {  
62
-            e.printStackTrace();  
63
-        }  
64
-        // 对字节数组Base64编码  
65
-        Encoder encoder = Base64.getEncoder(); 
66
-        
67
-        return encoder.encodeToString(outputStream.toByteArray());// 返回Base64编码过的字节数组字符串  
68
-    }
69
-    
70
-    
71
-    /**
72
-     * 将Base64位编码的图片进行解码,并保存到指定目录
73
-     * @param base64Str 利用base64加密之后的字符串
74
-     * @param path 文件解密之后存放的地址 例如:D://
75
-     * @param imgName 文件解密之后命名的名称 例如: test.jpg
76
-     */
77
-    public static void decodeBase64ToImage(String base64Str, String path,  
78
-            String imgName) {  
79
-        Decoder decoder = Base64.getDecoder();  
80
-        try {  
81
-            FileOutputStream write = new FileOutputStream(new File(path  
82
-                    + imgName));  
83
-            byte[] decoderBytes = decoder.decode(base64Str);  
84
-            write.write(decoderBytes);  
85
-            write.close();  
86
-        } catch (IOException e) {  
87
-            e.printStackTrace();  
88
-        }  
89
-    }  
90
-}

+ 0
- 84
CODE/smart-community/app-api/src/main/java/com/community/huiju/common/hk/test/PicUtils.java Datei anzeigen

@@ -1,84 +0,0 @@
1
-package com.community.huiju.common.hk.test;
2
-
3
-import net.coobird.thumbnailator.Thumbnails;
4
-import org.apache.commons.io.FileUtils;
5
-import org.slf4j.Logger;
6
-import org.slf4j.LoggerFactory;
7
-
8
-import java.io.ByteArrayInputStream;
9
-import java.io.ByteArrayOutputStream;
10
-import java.io.File;
11
-import java.io.IOException;
12
-
13
-/**
14
- * 图片压缩Utils
15
- *
16
- * @author worstEzreal
17
- * @version V1.1.0
18
- * @date 2018/3/12
19
- */
20
-public class PicUtils {
21
-
22
-    private static Logger logger = LoggerFactory.getLogger(PicUtils.class);
23
-
24
-   public static void main(String[] args) throws IOException {
25
-        byte[] bytes = FileUtils.readFileToByteArray(new File("C:\\Users\\DELL\\Pictures\\timg.jpg"));
26
-      long l = System.currentTimeMillis();
27
-       bytes = PicUtils.compressPicForScale(bytes, 20, "x");// 图片小于300kb
28
-        System.out.println(System.currentTimeMillis() - l);
29
-        FileUtils.writeByteArrayToFile(new File("C:\\Users\\DELL\\Pictures\\timg.jpg"), bytes);
30
-   }
31
-
32
-    /**
33
-     * 根据指定大小压缩图片
34
-     *
35
-     * @param imageBytes  源图片字节数组
36
-     * @param desFileSize 指定图片大小,单位kb
37
-     * @param imageId     影像编号
38
-     * @return 压缩质量后的图片字节数组
39
-     */
40
-    public static byte[] compressPicForScale(byte[] imageBytes, long desFileSize, String imageId) {
41
-        if (imageBytes == null || imageBytes.length <= 0 || imageBytes.length < desFileSize * 1024) {
42
-            return imageBytes;
43
-        }
44
-        long srcSize = imageBytes.length;
45
-        double accuracy = getAccuracy(srcSize / 1024);
46
-        try {
47
-            while (imageBytes.length > desFileSize * 1024) {
48
-                ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes);
49
-                ByteArrayOutputStream outputStream = new ByteArrayOutputStream(imageBytes.length);
50
-                Thumbnails.of(inputStream)
51
-                        .scale(accuracy)
52
-                        .outputQuality(accuracy)
53
-                        .toOutputStream(outputStream);
54
-                imageBytes = outputStream.toByteArray();
55
-            }
56
-            logger.info("【图片压缩】imageId={} | 图片原大小={}kb | 压缩后大小={}kb",
57
-                    imageId, srcSize / 1024, imageBytes.length / 1024);
58
-        } catch (Exception e) {
59
-            logger.error("【图片压缩】msg=图片压缩失败!", e);
60
-        }
61
-        return imageBytes;
62
-    }
63
-
64
-    /**
65
-     * 自动调节精度(经验数值)
66
-     *
67
-     * @param size 源图片大小
68
-     * @return 图片压缩质量比
69
-     */
70
-    private static double getAccuracy(long size) {
71
-        double accuracy;
72
-        if (size < 900) {
73
-            accuracy = 0.85;
74
-        } else if (size < 2047) {
75
-            accuracy = 0.6;
76
-        } else if (size < 3275) {
77
-            accuracy = 0.44;
78
-        } else {
79
-            accuracy = 0.4;
80
-        }
81
-        return accuracy;
82
-    }
83
-
84
-}

+ 0
- 49
CODE/smart-community/app-api/src/main/java/com/community/huiju/common/hk/test/img.java Datei anzeigen

@@ -1,49 +0,0 @@
1
-package com.community.huiju.common.hk.test;
2
-
3
-import org.apache.commons.codec.binary.Base64;
4
-
5
-import java.io.FileInputStream;
6
-import java.io.IOException;
7
-import java.io.InputStream;
8
-
9
-/**
10
- * version V1.0
11
- * class_name: $METHOD_NAME$
12
- * param: $METHOD_PARAM$
13
- * describe: TODO
14
- * creat_user:fannaixi
15
- * creat_time: 2018/11/6
16
- **/
17
-public class img{
18
-    public static void main(String[] args) {
19
-        String imgFile = "E:\\1.jpg";//待处理的图片
20
-        String imgbese=getImgStr(imgFile);
21
-        System.out.println(imgbese.length());
22
-        System.out.println(imgbese);
23
-
24
-    }
25
-
26
-    /**
27
-     * 将图片转换成Base64编码
28
-     * @param imgFile 待处理图片
29
-     * @return
30
-     */
31
-    public static String getImgStr(String imgFile){
32
-        //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
33
-        InputStream in = null;
34
-        byte[] data = null;
35
-        //读取图片字节数组
36
-        try
37
-        {
38
-            in = new FileInputStream(imgFile);
39
-            data = new byte[in.available()];
40
-            in.read(data);
41
-            in.close();
42
-        }
43
-        catch (IOException e)
44
-        {
45
-            e.printStackTrace();
46
-        }
47
-        return new String(Base64.encodeBase64(data));
48
-    }
49
-}