001// ______________________________________________________
002// Generated by codegen - https://gitee.com/l0km/codegen 
003// template: decorator/decorator.generic.class.vm
004// ______________________________________________________
005package net.gdface.sdk;
006import java.io.File;
007import java.io.IOException;
008import java.io.InputStream;
009import java.net.URL;
010import java.nio.ByteBuffer;
011import java.util.List;
012import java.util.Map;
013import net.gdface.image.ImageErrorException;
014import net.gdface.image.MatType;
015import net.gdface.utils.BinaryUtils;
016/**
017 * decorator pattern 装饰者模式实现基于{@link FaceApiDecorator}的支持泛型方法参数{@link FaceApi}接口<br>
018 * 所有 byte[] 类型的参数都支持泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}<br>
019 * 注意:<br>
020 * 参数为{@link java.io.InputStream}的方法返回时会自动执行{@link java.io.InputStream#close()}关闭流<br>
021 * 参见 {@link net.gdface.utils.BinaryUtils#readBytes(java.io.InputStream)}<br>
022 * unchecked后缀的方法将所有显式申明的异常封装到{@link RuntimeException}抛出<br>
023 * 计算机生成代码(generated by automated tools DecoratorGenerator @author guyadong)<br>
024 * @author guyadong
025 *
026 */
027public class FaceApiGenericDecorator extends FaceApiDecorator{
028    public FaceApiGenericDecorator(FaceApi delegate) {
029        super(delegate);
030    }
031    //1
032    /**
033     * {@link FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)}对应的泛型方法<br>
034    * @param <T1> T1
035    * @param <T2> T2
036     * @param imgData1 imgData1
037     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
038     * @param facePos1 facePos1
039     * @param imgData2 imgData2
040     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
041     * @param facePos2 facePos2
042     * @return double
043     * @throws ImageErrorException ImageErrorException
044     * @throws NotFaceDetectedException NotFaceDetectedException
045     * @throws IOException IOException
046     * @see FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)
047     */    
048    public <T1,T2> double compare2Face (T1 imgData1,CodeInfo facePos1,T2 imgData2,CodeInfo facePos2) throws ImageErrorException,NotFaceDetectedException,IOException{
049        return compare2Face(BinaryUtils.getBytesNotEmpty(imgData1),facePos1,BinaryUtils.getBytesNotEmpty(imgData2),facePos2);
050    }
051    //2
052    /**
053     * {@link FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)}泛型方法对应的unchecked方法,
054     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
055     * @param <T1> T1
056     * @param <T2> T2
057     * @param imgData1 imgData1
058     * @param facePos1 facePos1
059     * @param imgData2 imgData2
060     * @param facePos2 facePos2
061     * @return double
062     */
063    public <T1,T2> double compare2FaceUnchecked (T1 imgData1,CodeInfo facePos1,T2 imgData2,CodeInfo facePos2) {
064        try{
065            return compare2Face(imgData1,facePos1,imgData2,facePos2);
066        } catch(RuntimeException e){
067            throw e;
068        } catch(Exception e){
069            throw new RuntimeException(e);
070        }
071    }
072    //3
073    /**
074     * 参见{@link FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)}
075     * @param imgData1 imgData1 InputStream
076     * @param facePos1 facePos1 
077     * @param imgData2 imgData2 InputStream
078     * @param facePos2 facePos2 
079     * @return double
080     * @throws ImageErrorException ImageErrorException
081     * @throws NotFaceDetectedException NotFaceDetectedException
082     * @throws IOException IOException
083     * @see FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)
084     */
085    public double compare2Face (InputStream imgData1,CodeInfo facePos1,InputStream imgData2,CodeInfo facePos2) throws ImageErrorException,NotFaceDetectedException,IOException{
086         return compare2Face(BinaryUtils.getBytesNotEmpty(imgData1),facePos1,BinaryUtils.getBytesNotEmpty(imgData2),facePos2);
087    }
088    //4
089    /**
090     * {@link #compare2Face (InputStream,CodeInfo,InputStream,CodeInfo)}对应的unchecked方法,
091     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
092     * @param <T1> T1
093     * @param <T2> T2
094     * @param imgData1 imgData1
095     * @param facePos1 facePos1
096     * @param imgData2 imgData2
097     * @param facePos2 facePos2
098     * @return double
099     */
100    public <T1,T2> double compare2FaceUnchecked (InputStream imgData1,CodeInfo facePos1,InputStream imgData2,CodeInfo facePos2) {
101        try{
102            return compare2Face(imgData1,facePos1,imgData2,facePos2);
103        } catch(RuntimeException e){
104            throw e;
105        } catch(Exception e){
106            throw new RuntimeException(e);
107        }
108    }
109
110    //5
111    /**
112     * 参见{@link FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)}
113     * @param imgData1 imgData1 URL
114     * @param facePos1 facePos1 
115     * @param imgData2 imgData2 URL
116     * @param facePos2 facePos2 
117     * @return double
118     * @throws ImageErrorException ImageErrorException
119     * @throws NotFaceDetectedException NotFaceDetectedException
120     * @throws IOException IOException
121     * @see FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)
122     */
123    public double compare2Face (URL imgData1,CodeInfo facePos1,URL imgData2,CodeInfo facePos2) throws ImageErrorException,NotFaceDetectedException,IOException{
124         return compare2Face(BinaryUtils.getBytesNotEmpty(imgData1),facePos1,BinaryUtils.getBytesNotEmpty(imgData2),facePos2);
125    }
126    //6
127    /**
128     * {@link #compare2Face (URL,CodeInfo,URL,CodeInfo)}对应的unchecked方法,
129     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
130     * @param <T1> T1
131     * @param <T2> T2
132     * @param imgData1 imgData1
133     * @param facePos1 facePos1
134     * @param imgData2 imgData2
135     * @param facePos2 facePos2
136     * @return double
137     */
138    public <T1,T2> double compare2FaceUnchecked (URL imgData1,CodeInfo facePos1,URL imgData2,CodeInfo facePos2) {
139        try{
140            return compare2Face(imgData1,facePos1,imgData2,facePos2);
141        } catch(RuntimeException e){
142            throw e;
143        } catch(Exception e){
144            throw new RuntimeException(e);
145        }
146    }
147
148    //7
149    /**
150     * 参见{@link FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)}
151     * @param imgData1 imgData1 File
152     * @param facePos1 facePos1 
153     * @param imgData2 imgData2 File
154     * @param facePos2 facePos2 
155     * @return double
156     * @throws ImageErrorException ImageErrorException
157     * @throws NotFaceDetectedException NotFaceDetectedException
158     * @throws IOException IOException
159     * @see FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)
160     */
161    public double compare2Face (File imgData1,CodeInfo facePos1,File imgData2,CodeInfo facePos2) throws ImageErrorException,NotFaceDetectedException,IOException{
162         return compare2Face(BinaryUtils.getBytesNotEmpty(imgData1),facePos1,BinaryUtils.getBytesNotEmpty(imgData2),facePos2);
163    }
164    //8
165    /**
166     * {@link #compare2Face (File,CodeInfo,File,CodeInfo)}对应的unchecked方法,
167     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
168     * @param <T1> T1
169     * @param <T2> T2
170     * @param imgData1 imgData1
171     * @param facePos1 facePos1
172     * @param imgData2 imgData2
173     * @param facePos2 facePos2
174     * @return double
175     */
176    public <T1,T2> double compare2FaceUnchecked (File imgData1,CodeInfo facePos1,File imgData2,CodeInfo facePos2) {
177        try{
178            return compare2Face(imgData1,facePos1,imgData2,facePos2);
179        } catch(RuntimeException e){
180            throw e;
181        } catch(Exception e){
182            throw new RuntimeException(e);
183        }
184    }
185
186    //9
187    /**
188     * 参见{@link FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)}
189     * @param imgData1 imgData1 ByteBuffer
190     * @param facePos1 facePos1 
191     * @param imgData2 imgData2 ByteBuffer
192     * @param facePos2 facePos2 
193     * @return double
194     * @throws ImageErrorException ImageErrorException
195     * @throws NotFaceDetectedException NotFaceDetectedException
196     * @throws IOException IOException
197     * @see FaceApi#compare2Face(byte[],CodeInfo,byte[],CodeInfo)
198     */
199    public double compare2Face (ByteBuffer imgData1,CodeInfo facePos1,ByteBuffer imgData2,CodeInfo facePos2) throws ImageErrorException,NotFaceDetectedException,IOException{
200         return compare2Face(BinaryUtils.getBytesNotEmpty(imgData1),facePos1,BinaryUtils.getBytesNotEmpty(imgData2),facePos2);
201    }
202    //10
203    /**
204     * {@link #compare2Face (ByteBuffer,CodeInfo,ByteBuffer,CodeInfo)}对应的unchecked方法,
205     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
206     * @param <T1> T1
207     * @param <T2> T2
208     * @param imgData1 imgData1
209     * @param facePos1 facePos1
210     * @param imgData2 imgData2
211     * @param facePos2 facePos2
212     * @return double
213     */
214    public <T1,T2> double compare2FaceUnchecked (ByteBuffer imgData1,CodeInfo facePos1,ByteBuffer imgData2,CodeInfo facePos2) {
215        try{
216            return compare2Face(imgData1,facePos1,imgData2,facePos2);
217        } catch(RuntimeException e){
218            throw e;
219        } catch(Exception e){
220            throw new RuntimeException(e);
221        }
222    }
223
224    //11
225    /**
226     * {@link FaceApi#compareCode(byte[],byte[])}对应的泛型方法<br>
227    * @param <T1> T1
228    * @param <T2> T2
229     * @param code1 code1
230     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
231     * @param code2 code2
232     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
233     * @return double
234     * @throws IOException IOException
235     * @see FaceApi#compareCode(byte[],byte[])
236     */    
237    public <T1,T2> double compareCode (T1 code1,T2 code2) throws IOException{
238        return compareCode(BinaryUtils.getBytesNotEmpty(code1),BinaryUtils.getBytesNotEmpty(code2));
239    }
240    //12
241    /**
242     * {@link FaceApi#compareCode(byte[],byte[])}泛型方法对应的unchecked方法,
243     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
244     * @param <T1> T1
245     * @param <T2> T2
246     * @param code1 code1
247     * @param code2 code2
248     * @return double
249     */
250    public <T1,T2> double compareCodeUnchecked (T1 code1,T2 code2) {
251        try{
252            return compareCode(code1,code2);
253        } catch(RuntimeException e){
254            throw e;
255        } catch(Exception e){
256            throw new RuntimeException(e);
257        }
258    }
259    //13
260    /**
261     * {@link FaceApi#compareCodes(byte[],net.gdface.sdk.CodeInfo[])}对应的泛型方法<br>
262    * @param <T> T
263     * @param code1 code1
264     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
265     * @param codes codes
266     * @return double[]
267     * @throws IOException IOException
268     * @see FaceApi#compareCodes(byte[],net.gdface.sdk.CodeInfo[])
269     */    
270    public <T> double[] compareCodes (T code1,CodeInfo[] codes) throws IOException{
271        return compareCodes(BinaryUtils.getBytesNotEmpty(code1),codes);
272    }
273    //14
274    /**
275     * {@link FaceApi#compareCodes(byte[],net.gdface.sdk.CodeInfo[])}泛型方法对应的unchecked方法,
276     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
277     * @param <T> T
278     * @param code1 code1
279     * @param codes codes
280     * @return double[]
281     */
282    public <T> double[] compareCodesUnchecked (T code1,CodeInfo[] codes) {
283        try{
284            return compareCodes(code1,codes);
285        } catch(RuntimeException e){
286            throw e;
287        } catch(Exception e){
288            throw new RuntimeException(e);
289        }
290    }
291    //15
292    /**
293     * {@link FaceApi#compareFaces(byte[],byte[],int)}对应的泛型方法<br>
294    * @param <T1> T1
295    * @param <T2> T2
296     * @param code code
297     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
298     * @param imgData imgData
299     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
300     * @param faceNum faceNum
301     * @return CompareResult
302     * @throws ImageErrorException ImageErrorException
303     * @throws NotFaceDetectedException NotFaceDetectedException
304     * @throws IOException IOException
305     * @see FaceApi#compareFaces(byte[],byte[],int)
306     */    
307    public <T1,T2> CompareResult compareFaces (T1 code,T2 imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
308        return compareFaces(BinaryUtils.getBytesNotEmpty(code),BinaryUtils.getBytesNotEmpty(imgData),faceNum);
309    }
310    //16
311    /**
312     * {@link FaceApi#compareFaces(byte[],byte[],int)}泛型方法对应的unchecked方法,
313     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
314     * @param <T1> T1
315     * @param <T2> T2
316     * @param code code
317     * @param imgData imgData
318     * @param faceNum faceNum
319     * @return CompareResult
320     */
321    public <T1,T2> CompareResult compareFacesUnchecked (T1 code,T2 imgData,int faceNum) {
322        try{
323            return compareFaces(code,imgData,faceNum);
324        } catch(RuntimeException e){
325            throw e;
326        } catch(Exception e){
327            throw new RuntimeException(e);
328        }
329    }
330    //17
331    /**
332     * 参见{@link FaceApi#compareFaces(byte[],byte[],int)}
333     * @param code code InputStream
334     * @param imgData imgData InputStream
335     * @param faceNum faceNum 
336     * @return CompareResult
337     * @throws ImageErrorException ImageErrorException
338     * @throws NotFaceDetectedException NotFaceDetectedException
339     * @throws IOException IOException
340     * @see FaceApi#compareFaces(byte[],byte[],int)
341     */
342    public CompareResult compareFaces (InputStream code,InputStream imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
343         return compareFaces(BinaryUtils.getBytesNotEmpty(code),BinaryUtils.getBytesNotEmpty(imgData),faceNum);
344    }
345    //18
346    /**
347     * {@link #compareFaces (InputStream,InputStream,int)}对应的unchecked方法,
348     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
349     * @param <T1> T1
350     * @param <T2> T2
351     * @param code code
352     * @param imgData imgData
353     * @param faceNum faceNum
354     * @return CompareResult
355     */
356    public <T1,T2> CompareResult compareFacesUnchecked (InputStream code,InputStream imgData,int faceNum) {
357        try{
358            return compareFaces(code,imgData,faceNum);
359        } catch(RuntimeException e){
360            throw e;
361        } catch(Exception e){
362            throw new RuntimeException(e);
363        }
364    }
365
366    //19
367    /**
368     * 参见{@link FaceApi#compareFaces(byte[],byte[],int)}
369     * @param code code URL
370     * @param imgData imgData URL
371     * @param faceNum faceNum 
372     * @return CompareResult
373     * @throws ImageErrorException ImageErrorException
374     * @throws NotFaceDetectedException NotFaceDetectedException
375     * @throws IOException IOException
376     * @see FaceApi#compareFaces(byte[],byte[],int)
377     */
378    public CompareResult compareFaces (URL code,URL imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
379         return compareFaces(BinaryUtils.getBytesNotEmpty(code),BinaryUtils.getBytesNotEmpty(imgData),faceNum);
380    }
381    //20
382    /**
383     * {@link #compareFaces (URL,URL,int)}对应的unchecked方法,
384     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
385     * @param <T1> T1
386     * @param <T2> T2
387     * @param code code
388     * @param imgData imgData
389     * @param faceNum faceNum
390     * @return CompareResult
391     */
392    public <T1,T2> CompareResult compareFacesUnchecked (URL code,URL imgData,int faceNum) {
393        try{
394            return compareFaces(code,imgData,faceNum);
395        } catch(RuntimeException e){
396            throw e;
397        } catch(Exception e){
398            throw new RuntimeException(e);
399        }
400    }
401
402    //21
403    /**
404     * 参见{@link FaceApi#compareFaces(byte[],byte[],int)}
405     * @param code code File
406     * @param imgData imgData File
407     * @param faceNum faceNum 
408     * @return CompareResult
409     * @throws ImageErrorException ImageErrorException
410     * @throws NotFaceDetectedException NotFaceDetectedException
411     * @throws IOException IOException
412     * @see FaceApi#compareFaces(byte[],byte[],int)
413     */
414    public CompareResult compareFaces (File code,File imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
415         return compareFaces(BinaryUtils.getBytesNotEmpty(code),BinaryUtils.getBytesNotEmpty(imgData),faceNum);
416    }
417    //22
418    /**
419     * {@link #compareFaces (File,File,int)}对应的unchecked方法,
420     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
421     * @param <T1> T1
422     * @param <T2> T2
423     * @param code code
424     * @param imgData imgData
425     * @param faceNum faceNum
426     * @return CompareResult
427     */
428    public <T1,T2> CompareResult compareFacesUnchecked (File code,File imgData,int faceNum) {
429        try{
430            return compareFaces(code,imgData,faceNum);
431        } catch(RuntimeException e){
432            throw e;
433        } catch(Exception e){
434            throw new RuntimeException(e);
435        }
436    }
437
438    //23
439    /**
440     * 参见{@link FaceApi#compareFaces(byte[],byte[],int)}
441     * @param code code ByteBuffer
442     * @param imgData imgData ByteBuffer
443     * @param faceNum faceNum 
444     * @return CompareResult
445     * @throws ImageErrorException ImageErrorException
446     * @throws NotFaceDetectedException NotFaceDetectedException
447     * @throws IOException IOException
448     * @see FaceApi#compareFaces(byte[],byte[],int)
449     */
450    public CompareResult compareFaces (ByteBuffer code,ByteBuffer imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
451         return compareFaces(BinaryUtils.getBytesNotEmpty(code),BinaryUtils.getBytesNotEmpty(imgData),faceNum);
452    }
453    //24
454    /**
455     * {@link #compareFaces (ByteBuffer,ByteBuffer,int)}对应的unchecked方法,
456     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
457     * @param <T1> T1
458     * @param <T2> T2
459     * @param code code
460     * @param imgData imgData
461     * @param faceNum faceNum
462     * @return CompareResult
463     */
464    public <T1,T2> CompareResult compareFacesUnchecked (ByteBuffer code,ByteBuffer imgData,int faceNum) {
465        try{
466            return compareFaces(code,imgData,faceNum);
467        } catch(RuntimeException e){
468            throw e;
469        } catch(Exception e){
470            throw new RuntimeException(e);
471        }
472    }
473
474    //25
475    /**
476     * {@link FaceApi#compareFeatures(byte[],List)}对应的泛型方法<br>
477    * @param <T> T
478     * @param code1 code1
479     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
480     * @param codes codes
481     * @return List
482     * @throws IOException IOException
483     * @see FaceApi#compareFeatures(byte[],List)
484     */    
485    public <T> List<Double> compareFeatures (T code1,List<byte[]> codes) throws IOException{
486        return compareFeatures(BinaryUtils.getBytesNotEmpty(code1),codes);
487    }
488    //26
489    /**
490     * {@link FaceApi#compareFeatures(byte[],List)}泛型方法对应的unchecked方法,
491     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
492     * @param <T> T
493     * @param code1 code1
494     * @param codes codes
495     * @return List
496     */
497    public <T> List<Double> compareFeaturesUnchecked (T code1,List<byte[]> codes) {
498        try{
499            return compareFeatures(code1,codes);
500        } catch(RuntimeException e){
501            throw e;
502        } catch(Exception e){
503            throw new RuntimeException(e);
504        }
505    }
506    //27
507    /**
508     * {@link FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)}对应的泛型方法<br>
509    * @param <T1> T1
510    * @param <T2> T2
511     * @param imgData1 imgData1
512     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
513     * @param detectRect1 detectRect1
514     * @param imgData2 imgData2
515     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
516     * @param detectRect2 detectRect2
517     * @return double
518     * @throws ImageErrorException ImageErrorException
519     * @throws NotFaceDetectedException NotFaceDetectedException
520     * @throws IOException IOException
521     * @see FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)
522     */    
523    public <T1,T2> double detectAndCompare2Face (T1 imgData1,FRect detectRect1,T2 imgData2,FRect detectRect2) throws ImageErrorException,NotFaceDetectedException,IOException{
524        return detectAndCompare2Face(BinaryUtils.getBytesNotEmpty(imgData1),detectRect1,BinaryUtils.getBytesNotEmpty(imgData2),detectRect2);
525    }
526    //28
527    /**
528     * {@link FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)}泛型方法对应的unchecked方法,
529     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
530     * @param <T1> T1
531     * @param <T2> T2
532     * @param imgData1 imgData1
533     * @param detectRect1 detectRect1
534     * @param imgData2 imgData2
535     * @param detectRect2 detectRect2
536     * @return double
537     */
538    public <T1,T2> double detectAndCompare2FaceUnchecked (T1 imgData1,FRect detectRect1,T2 imgData2,FRect detectRect2) {
539        try{
540            return detectAndCompare2Face(imgData1,detectRect1,imgData2,detectRect2);
541        } catch(RuntimeException e){
542            throw e;
543        } catch(Exception e){
544            throw new RuntimeException(e);
545        }
546    }
547    //29
548    /**
549     * 参见{@link FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)}
550     * @param imgData1 imgData1 InputStream
551     * @param detectRect1 detectRect1 
552     * @param imgData2 imgData2 InputStream
553     * @param detectRect2 detectRect2 
554     * @return double
555     * @throws ImageErrorException ImageErrorException
556     * @throws NotFaceDetectedException NotFaceDetectedException
557     * @throws IOException IOException
558     * @see FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)
559     */
560    public double detectAndCompare2Face (InputStream imgData1,FRect detectRect1,InputStream imgData2,FRect detectRect2) throws ImageErrorException,NotFaceDetectedException,IOException{
561         return detectAndCompare2Face(BinaryUtils.getBytesNotEmpty(imgData1),detectRect1,BinaryUtils.getBytesNotEmpty(imgData2),detectRect2);
562    }
563    //30
564    /**
565     * {@link #detectAndCompare2Face (InputStream,FRect,InputStream,FRect)}对应的unchecked方法,
566     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
567     * @param <T1> T1
568     * @param <T2> T2
569     * @param imgData1 imgData1
570     * @param detectRect1 detectRect1
571     * @param imgData2 imgData2
572     * @param detectRect2 detectRect2
573     * @return double
574     */
575    public <T1,T2> double detectAndCompare2FaceUnchecked (InputStream imgData1,FRect detectRect1,InputStream imgData2,FRect detectRect2) {
576        try{
577            return detectAndCompare2Face(imgData1,detectRect1,imgData2,detectRect2);
578        } catch(RuntimeException e){
579            throw e;
580        } catch(Exception e){
581            throw new RuntimeException(e);
582        }
583    }
584
585    //31
586    /**
587     * 参见{@link FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)}
588     * @param imgData1 imgData1 URL
589     * @param detectRect1 detectRect1 
590     * @param imgData2 imgData2 URL
591     * @param detectRect2 detectRect2 
592     * @return double
593     * @throws ImageErrorException ImageErrorException
594     * @throws NotFaceDetectedException NotFaceDetectedException
595     * @throws IOException IOException
596     * @see FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)
597     */
598    public double detectAndCompare2Face (URL imgData1,FRect detectRect1,URL imgData2,FRect detectRect2) throws ImageErrorException,NotFaceDetectedException,IOException{
599         return detectAndCompare2Face(BinaryUtils.getBytesNotEmpty(imgData1),detectRect1,BinaryUtils.getBytesNotEmpty(imgData2),detectRect2);
600    }
601    //32
602    /**
603     * {@link #detectAndCompare2Face (URL,FRect,URL,FRect)}对应的unchecked方法,
604     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
605     * @param <T1> T1
606     * @param <T2> T2
607     * @param imgData1 imgData1
608     * @param detectRect1 detectRect1
609     * @param imgData2 imgData2
610     * @param detectRect2 detectRect2
611     * @return double
612     */
613    public <T1,T2> double detectAndCompare2FaceUnchecked (URL imgData1,FRect detectRect1,URL imgData2,FRect detectRect2) {
614        try{
615            return detectAndCompare2Face(imgData1,detectRect1,imgData2,detectRect2);
616        } catch(RuntimeException e){
617            throw e;
618        } catch(Exception e){
619            throw new RuntimeException(e);
620        }
621    }
622
623    //33
624    /**
625     * 参见{@link FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)}
626     * @param imgData1 imgData1 File
627     * @param detectRect1 detectRect1 
628     * @param imgData2 imgData2 File
629     * @param detectRect2 detectRect2 
630     * @return double
631     * @throws ImageErrorException ImageErrorException
632     * @throws NotFaceDetectedException NotFaceDetectedException
633     * @throws IOException IOException
634     * @see FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)
635     */
636    public double detectAndCompare2Face (File imgData1,FRect detectRect1,File imgData2,FRect detectRect2) throws ImageErrorException,NotFaceDetectedException,IOException{
637         return detectAndCompare2Face(BinaryUtils.getBytesNotEmpty(imgData1),detectRect1,BinaryUtils.getBytesNotEmpty(imgData2),detectRect2);
638    }
639    //34
640    /**
641     * {@link #detectAndCompare2Face (File,FRect,File,FRect)}对应的unchecked方法,
642     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
643     * @param <T1> T1
644     * @param <T2> T2
645     * @param imgData1 imgData1
646     * @param detectRect1 detectRect1
647     * @param imgData2 imgData2
648     * @param detectRect2 detectRect2
649     * @return double
650     */
651    public <T1,T2> double detectAndCompare2FaceUnchecked (File imgData1,FRect detectRect1,File imgData2,FRect detectRect2) {
652        try{
653            return detectAndCompare2Face(imgData1,detectRect1,imgData2,detectRect2);
654        } catch(RuntimeException e){
655            throw e;
656        } catch(Exception e){
657            throw new RuntimeException(e);
658        }
659    }
660
661    //35
662    /**
663     * 参见{@link FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)}
664     * @param imgData1 imgData1 ByteBuffer
665     * @param detectRect1 detectRect1 
666     * @param imgData2 imgData2 ByteBuffer
667     * @param detectRect2 detectRect2 
668     * @return double
669     * @throws ImageErrorException ImageErrorException
670     * @throws NotFaceDetectedException NotFaceDetectedException
671     * @throws IOException IOException
672     * @see FaceApi#detectAndCompare2Face(byte[],FRect,byte[],FRect)
673     */
674    public double detectAndCompare2Face (ByteBuffer imgData1,FRect detectRect1,ByteBuffer imgData2,FRect detectRect2) throws ImageErrorException,NotFaceDetectedException,IOException{
675         return detectAndCompare2Face(BinaryUtils.getBytesNotEmpty(imgData1),detectRect1,BinaryUtils.getBytesNotEmpty(imgData2),detectRect2);
676    }
677    //36
678    /**
679     * {@link #detectAndCompare2Face (ByteBuffer,FRect,ByteBuffer,FRect)}对应的unchecked方法,
680     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
681     * @param <T1> T1
682     * @param <T2> T2
683     * @param imgData1 imgData1
684     * @param detectRect1 detectRect1
685     * @param imgData2 imgData2
686     * @param detectRect2 detectRect2
687     * @return double
688     */
689    public <T1,T2> double detectAndCompare2FaceUnchecked (ByteBuffer imgData1,FRect detectRect1,ByteBuffer imgData2,FRect detectRect2) {
690        try{
691            return detectAndCompare2Face(imgData1,detectRect1,imgData2,detectRect2);
692        } catch(RuntimeException e){
693            throw e;
694        } catch(Exception e){
695            throw new RuntimeException(e);
696        }
697    }
698
699    //37
700    /**
701     * {@link FaceApi#detectAndGetCodeInfo(byte[],int)}对应的泛型方法<br>
702    * @param <T> T
703     * @param imgData imgData
704     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
705     * @param faceNum faceNum
706     * @return CodeInfo[]
707     * @throws ImageErrorException ImageErrorException
708     * @throws NotFaceDetectedException NotFaceDetectedException
709     * @throws IOException IOException
710     * @see FaceApi#detectAndGetCodeInfo(byte[],int)
711     */    
712    public <T> CodeInfo[] detectAndGetCodeInfo (T imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
713        return detectAndGetCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum);
714    }
715    //38
716    /**
717     * {@link FaceApi#detectAndGetCodeInfo(byte[],int)}泛型方法对应的unchecked方法,
718     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
719     * @param <T> T
720     * @param imgData imgData
721     * @param faceNum faceNum
722     * @return CodeInfo[]
723     */
724    public <T> CodeInfo[] detectAndGetCodeInfoUnchecked (T imgData,int faceNum) {
725        try{
726            return detectAndGetCodeInfo(imgData,faceNum);
727        } catch(RuntimeException e){
728            throw e;
729        } catch(Exception e){
730            throw new RuntimeException(e);
731        }
732    }
733    //39
734    /**
735     * 参见{@link FaceApi#detectAndGetCodeInfo(byte[],int)}
736     * @param imgData imgData InputStream
737     * @param faceNum faceNum 
738     * @return CodeInfo[]
739     * @throws ImageErrorException ImageErrorException
740     * @throws NotFaceDetectedException NotFaceDetectedException
741     * @throws IOException IOException
742     * @see FaceApi#detectAndGetCodeInfo(byte[],int)
743     */
744    public CodeInfo[] detectAndGetCodeInfo (InputStream imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
745         return detectAndGetCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum);
746    }
747    //40
748    /**
749     * {@link #detectAndGetCodeInfo (InputStream,int)}对应的unchecked方法,
750     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
751     * @param <T> T
752     * @param imgData imgData
753     * @param faceNum faceNum
754     * @return CodeInfo[]
755     */
756    public <T> CodeInfo[] detectAndGetCodeInfoUnchecked (InputStream imgData,int faceNum) {
757        try{
758            return detectAndGetCodeInfo(imgData,faceNum);
759        } catch(RuntimeException e){
760            throw e;
761        } catch(Exception e){
762            throw new RuntimeException(e);
763        }
764    }
765
766    //41
767    /**
768     * 参见{@link FaceApi#detectAndGetCodeInfo(byte[],int)}
769     * @param imgData imgData URL
770     * @param faceNum faceNum 
771     * @return CodeInfo[]
772     * @throws ImageErrorException ImageErrorException
773     * @throws NotFaceDetectedException NotFaceDetectedException
774     * @throws IOException IOException
775     * @see FaceApi#detectAndGetCodeInfo(byte[],int)
776     */
777    public CodeInfo[] detectAndGetCodeInfo (URL imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
778         return detectAndGetCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum);
779    }
780    //42
781    /**
782     * {@link #detectAndGetCodeInfo (URL,int)}对应的unchecked方法,
783     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
784     * @param <T> T
785     * @param imgData imgData
786     * @param faceNum faceNum
787     * @return CodeInfo[]
788     */
789    public <T> CodeInfo[] detectAndGetCodeInfoUnchecked (URL imgData,int faceNum) {
790        try{
791            return detectAndGetCodeInfo(imgData,faceNum);
792        } catch(RuntimeException e){
793            throw e;
794        } catch(Exception e){
795            throw new RuntimeException(e);
796        }
797    }
798
799    //43
800    /**
801     * 参见{@link FaceApi#detectAndGetCodeInfo(byte[],int)}
802     * @param imgData imgData File
803     * @param faceNum faceNum 
804     * @return CodeInfo[]
805     * @throws ImageErrorException ImageErrorException
806     * @throws NotFaceDetectedException NotFaceDetectedException
807     * @throws IOException IOException
808     * @see FaceApi#detectAndGetCodeInfo(byte[],int)
809     */
810    public CodeInfo[] detectAndGetCodeInfo (File imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
811         return detectAndGetCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum);
812    }
813    //44
814    /**
815     * {@link #detectAndGetCodeInfo (File,int)}对应的unchecked方法,
816     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
817     * @param <T> T
818     * @param imgData imgData
819     * @param faceNum faceNum
820     * @return CodeInfo[]
821     */
822    public <T> CodeInfo[] detectAndGetCodeInfoUnchecked (File imgData,int faceNum) {
823        try{
824            return detectAndGetCodeInfo(imgData,faceNum);
825        } catch(RuntimeException e){
826            throw e;
827        } catch(Exception e){
828            throw new RuntimeException(e);
829        }
830    }
831
832    //45
833    /**
834     * 参见{@link FaceApi#detectAndGetCodeInfo(byte[],int)}
835     * @param imgData imgData ByteBuffer
836     * @param faceNum faceNum 
837     * @return CodeInfo[]
838     * @throws ImageErrorException ImageErrorException
839     * @throws NotFaceDetectedException NotFaceDetectedException
840     * @throws IOException IOException
841     * @see FaceApi#detectAndGetCodeInfo(byte[],int)
842     */
843    public CodeInfo[] detectAndGetCodeInfo (ByteBuffer imgData,int faceNum) throws ImageErrorException,NotFaceDetectedException,IOException{
844         return detectAndGetCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum);
845    }
846    //46
847    /**
848     * {@link #detectAndGetCodeInfo (ByteBuffer,int)}对应的unchecked方法,
849     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
850     * @param <T> T
851     * @param imgData imgData
852     * @param faceNum faceNum
853     * @return CodeInfo[]
854     */
855    public <T> CodeInfo[] detectAndGetCodeInfoUnchecked (ByteBuffer imgData,int faceNum) {
856        try{
857            return detectAndGetCodeInfo(imgData,faceNum);
858        } catch(RuntimeException e){
859            throw e;
860        } catch(Exception e){
861            throw new RuntimeException(e);
862        }
863    }
864
865    //47
866    /**
867     * {@link FaceApi#detectCenterFace(byte[])}对应的泛型方法<br>
868    * @param <T> T
869     * @param imgData imgData
870     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
871     * @return CodeInfo
872     * @throws ImageErrorException ImageErrorException
873     * @throws NotFaceDetectedException NotFaceDetectedException
874     * @throws IOException IOException
875     * @see FaceApi#detectCenterFace(byte[])
876     */    
877    public <T> CodeInfo detectCenterFace (T imgData) throws ImageErrorException,NotFaceDetectedException,IOException{
878        return detectCenterFace(BinaryUtils.getBytesNotEmpty(imgData));
879    }
880    //48
881    /**
882     * {@link FaceApi#detectCenterFace(byte[])}泛型方法对应的unchecked方法,
883     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
884     * @param <T> T
885     * @param imgData imgData
886     * @return CodeInfo
887     */
888    public <T> CodeInfo detectCenterFaceUnchecked (T imgData) {
889        try{
890            return detectCenterFace(imgData);
891        } catch(RuntimeException e){
892            throw e;
893        } catch(Exception e){
894            throw new RuntimeException(e);
895        }
896    }
897    //49
898    /**
899     * {@link FaceApi#detectFace(byte[])}对应的泛型方法<br>
900    * @param <T> T
901     * @param imgData imgData
902     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
903     * @return CodeInfo[]
904     * @throws ImageErrorException ImageErrorException
905     * @throws IOException IOException
906     * @see FaceApi#detectFace(byte[])
907     */    
908    public <T> CodeInfo[] detectFace (T imgData) throws ImageErrorException,IOException{
909        return detectFace(BinaryUtils.getBytesNotEmpty(imgData));
910    }
911    //50
912    /**
913     * {@link FaceApi#detectFace(byte[])}泛型方法对应的unchecked方法,
914     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
915     * @param <T> T
916     * @param imgData imgData
917     * @return CodeInfo[]
918     */
919    public <T> CodeInfo[] detectFaceUnchecked (T imgData) {
920        try{
921            return detectFace(imgData);
922        } catch(RuntimeException e){
923            throw e;
924        } catch(Exception e){
925            throw new RuntimeException(e);
926        }
927    }
928    //51
929    /**
930     * 参见{@link FaceApi#detectFace(byte[])}
931     * @param imgData imgData InputStream
932     * @return CodeInfo[]
933     * @throws ImageErrorException ImageErrorException
934     * @throws IOException IOException
935     * @see FaceApi#detectFace(byte[])
936     */
937    public CodeInfo[] detectFace (InputStream imgData) throws ImageErrorException,IOException{
938         return detectFace(BinaryUtils.getBytesNotEmpty(imgData));
939    }
940    //52
941    /**
942     * {@link #detectFace (InputStream)}对应的unchecked方法,
943     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
944     * @param <T> T
945     * @param imgData imgData
946     * @return CodeInfo[]
947     */
948    public <T> CodeInfo[] detectFaceUnchecked (InputStream imgData) {
949        try{
950            return detectFace(imgData);
951        } catch(RuntimeException e){
952            throw e;
953        } catch(Exception e){
954            throw new RuntimeException(e);
955        }
956    }
957
958    //53
959    /**
960     * 参见{@link FaceApi#detectFace(byte[])}
961     * @param imgData imgData URL
962     * @return CodeInfo[]
963     * @throws ImageErrorException ImageErrorException
964     * @throws IOException IOException
965     * @see FaceApi#detectFace(byte[])
966     */
967    public CodeInfo[] detectFace (URL imgData) throws ImageErrorException,IOException{
968         return detectFace(BinaryUtils.getBytesNotEmpty(imgData));
969    }
970    //54
971    /**
972     * {@link #detectFace (URL)}对应的unchecked方法,
973     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
974     * @param <T> T
975     * @param imgData imgData
976     * @return CodeInfo[]
977     */
978    public <T> CodeInfo[] detectFaceUnchecked (URL imgData) {
979        try{
980            return detectFace(imgData);
981        } catch(RuntimeException e){
982            throw e;
983        } catch(Exception e){
984            throw new RuntimeException(e);
985        }
986    }
987
988    //55
989    /**
990     * 参见{@link FaceApi#detectFace(byte[])}
991     * @param imgData imgData File
992     * @return CodeInfo[]
993     * @throws ImageErrorException ImageErrorException
994     * @throws IOException IOException
995     * @see FaceApi#detectFace(byte[])
996     */
997    public CodeInfo[] detectFace (File imgData) throws ImageErrorException,IOException{
998         return detectFace(BinaryUtils.getBytesNotEmpty(imgData));
999    }
1000    //56
1001    /**
1002     * {@link #detectFace (File)}对应的unchecked方法,
1003     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1004     * @param <T> T
1005     * @param imgData imgData
1006     * @return CodeInfo[]
1007     */
1008    public <T> CodeInfo[] detectFaceUnchecked (File imgData) {
1009        try{
1010            return detectFace(imgData);
1011        } catch(RuntimeException e){
1012            throw e;
1013        } catch(Exception e){
1014            throw new RuntimeException(e);
1015        }
1016    }
1017
1018    //57
1019    /**
1020     * 参见{@link FaceApi#detectFace(byte[])}
1021     * @param imgData imgData ByteBuffer
1022     * @return CodeInfo[]
1023     * @throws ImageErrorException ImageErrorException
1024     * @throws IOException IOException
1025     * @see FaceApi#detectFace(byte[])
1026     */
1027    public CodeInfo[] detectFace (ByteBuffer imgData) throws ImageErrorException,IOException{
1028         return detectFace(BinaryUtils.getBytesNotEmpty(imgData));
1029    }
1030    //58
1031    /**
1032     * {@link #detectFace (ByteBuffer)}对应的unchecked方法,
1033     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1034     * @param <T> T
1035     * @param imgData imgData
1036     * @return CodeInfo[]
1037     */
1038    public <T> CodeInfo[] detectFaceUnchecked (ByteBuffer imgData) {
1039        try{
1040            return detectFace(imgData);
1041        } catch(RuntimeException e){
1042            throw e;
1043        } catch(Exception e){
1044            throw new RuntimeException(e);
1045        }
1046    }
1047
1048    //59
1049    /**
1050     * {@link FaceApi#detectMaxFace(byte[])}对应的泛型方法<br>
1051    * @param <T> T
1052     * @param imgData imgData
1053     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1054     * @return CodeInfo
1055     * @throws ImageErrorException ImageErrorException
1056     * @throws NotFaceDetectedException NotFaceDetectedException
1057     * @throws IOException IOException
1058     * @see FaceApi#detectMaxFace(byte[])
1059     */    
1060    public <T> CodeInfo detectMaxFace (T imgData) throws ImageErrorException,NotFaceDetectedException,IOException{
1061        return detectMaxFace(BinaryUtils.getBytesNotEmpty(imgData));
1062    }
1063    //60
1064    /**
1065     * {@link FaceApi#detectMaxFace(byte[])}泛型方法对应的unchecked方法,
1066     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1067     * @param <T> T
1068     * @param imgData imgData
1069     * @return CodeInfo
1070     */
1071    public <T> CodeInfo detectMaxFaceUnchecked (T imgData) {
1072        try{
1073            return detectMaxFace(imgData);
1074        } catch(RuntimeException e){
1075            throw e;
1076        } catch(Exception e){
1077            throw new RuntimeException(e);
1078        }
1079    }
1080    //61
1081    /**
1082     * {@link FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])}对应的泛型方法<br>
1083    * @param <T> T
1084     * @param imgData imgData
1085     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1086     * @param faceNum faceNum
1087     * @param facePos facePos
1088     * @return CodeInfo[]
1089     * @throws NotFaceDetectedException NotFaceDetectedException
1090     * @throws IOException IOException
1091     * @see FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])
1092     */    
1093    public <T> CodeInfo[] getCodeInfo (T imgData,int faceNum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1094        return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum,facePos);
1095    }
1096    //62
1097    /**
1098     * {@link FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])}泛型方法对应的unchecked方法,
1099     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1100     * @param <T> T
1101     * @param imgData imgData
1102     * @param faceNum faceNum
1103     * @param facePos facePos
1104     * @return CodeInfo[]
1105     */
1106    public <T> CodeInfo[] getCodeInfoUnchecked (T imgData,int faceNum,CodeInfo[] facePos) {
1107        try{
1108            return getCodeInfo(imgData,faceNum,facePos);
1109        } catch(RuntimeException e){
1110            throw e;
1111        } catch(Exception e){
1112            throw new RuntimeException(e);
1113        }
1114    }
1115    //63
1116    /**
1117     * 参见{@link FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])}
1118     * @param imgData imgData InputStream
1119     * @param faceNum faceNum 
1120     * @param facePos facePos 
1121     * @return CodeInfo[]
1122     * @throws NotFaceDetectedException NotFaceDetectedException
1123     * @throws IOException IOException
1124     * @see FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])
1125     */
1126    public CodeInfo[] getCodeInfo (InputStream imgData,int faceNum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1127         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum,facePos);
1128    }
1129    //64
1130    /**
1131     * {@link #getCodeInfo (InputStream,int,CodeInfo[])}对应的unchecked方法,
1132     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1133     * @param <T> T
1134     * @param imgData imgData
1135     * @param faceNum faceNum
1136     * @param facePos facePos
1137     * @return CodeInfo[]
1138     */
1139    public <T> CodeInfo[] getCodeInfoUnchecked (InputStream imgData,int faceNum,CodeInfo[] facePos) {
1140        try{
1141            return getCodeInfo(imgData,faceNum,facePos);
1142        } catch(RuntimeException e){
1143            throw e;
1144        } catch(Exception e){
1145            throw new RuntimeException(e);
1146        }
1147    }
1148
1149    //65
1150    /**
1151     * 参见{@link FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])}
1152     * @param imgData imgData URL
1153     * @param faceNum faceNum 
1154     * @param facePos facePos 
1155     * @return CodeInfo[]
1156     * @throws NotFaceDetectedException NotFaceDetectedException
1157     * @throws IOException IOException
1158     * @see FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])
1159     */
1160    public CodeInfo[] getCodeInfo (URL imgData,int faceNum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1161         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum,facePos);
1162    }
1163    //66
1164    /**
1165     * {@link #getCodeInfo (URL,int,CodeInfo[])}对应的unchecked方法,
1166     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1167     * @param <T> T
1168     * @param imgData imgData
1169     * @param faceNum faceNum
1170     * @param facePos facePos
1171     * @return CodeInfo[]
1172     */
1173    public <T> CodeInfo[] getCodeInfoUnchecked (URL imgData,int faceNum,CodeInfo[] facePos) {
1174        try{
1175            return getCodeInfo(imgData,faceNum,facePos);
1176        } catch(RuntimeException e){
1177            throw e;
1178        } catch(Exception e){
1179            throw new RuntimeException(e);
1180        }
1181    }
1182
1183    //67
1184    /**
1185     * 参见{@link FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])}
1186     * @param imgData imgData File
1187     * @param faceNum faceNum 
1188     * @param facePos facePos 
1189     * @return CodeInfo[]
1190     * @throws NotFaceDetectedException NotFaceDetectedException
1191     * @throws IOException IOException
1192     * @see FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])
1193     */
1194    public CodeInfo[] getCodeInfo (File imgData,int faceNum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1195         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum,facePos);
1196    }
1197    //68
1198    /**
1199     * {@link #getCodeInfo (File,int,CodeInfo[])}对应的unchecked方法,
1200     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1201     * @param <T> T
1202     * @param imgData imgData
1203     * @param faceNum faceNum
1204     * @param facePos facePos
1205     * @return CodeInfo[]
1206     */
1207    public <T> CodeInfo[] getCodeInfoUnchecked (File imgData,int faceNum,CodeInfo[] facePos) {
1208        try{
1209            return getCodeInfo(imgData,faceNum,facePos);
1210        } catch(RuntimeException e){
1211            throw e;
1212        } catch(Exception e){
1213            throw new RuntimeException(e);
1214        }
1215    }
1216
1217    //69
1218    /**
1219     * 参见{@link FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])}
1220     * @param imgData imgData ByteBuffer
1221     * @param faceNum faceNum 
1222     * @param facePos facePos 
1223     * @return CodeInfo[]
1224     * @throws NotFaceDetectedException NotFaceDetectedException
1225     * @throws IOException IOException
1226     * @see FaceApi#getCodeInfo(byte[],int,net.gdface.sdk.CodeInfo[])
1227     */
1228    public CodeInfo[] getCodeInfo (ByteBuffer imgData,int faceNum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1229         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),faceNum,facePos);
1230    }
1231    //70
1232    /**
1233     * {@link #getCodeInfo (ByteBuffer,int,CodeInfo[])}对应的unchecked方法,
1234     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1235     * @param <T> T
1236     * @param imgData imgData
1237     * @param faceNum faceNum
1238     * @param facePos facePos
1239     * @return CodeInfo[]
1240     */
1241    public <T> CodeInfo[] getCodeInfoUnchecked (ByteBuffer imgData,int faceNum,CodeInfo[] facePos) {
1242        try{
1243            return getCodeInfo(imgData,faceNum,facePos);
1244        } catch(RuntimeException e){
1245            throw e;
1246        } catch(Exception e){
1247            throw new RuntimeException(e);
1248        }
1249    }
1250
1251    //71
1252    /**
1253     * {@link FaceApi#getCodeInfo(byte[],CodeInfo)}对应的泛型方法<br>
1254    * @param <T> T
1255     * @param imgData imgData
1256     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1257     * @param facePos facePos
1258     * @return CodeInfo
1259     * @throws IOException IOException
1260     * @see FaceApi#getCodeInfo(byte[],CodeInfo)
1261     */    
1262    public <T> CodeInfo getCodeInfo (T imgData,CodeInfo facePos) throws IOException{
1263        return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),facePos);
1264    }
1265    //72
1266    /**
1267     * {@link FaceApi#getCodeInfo(byte[],CodeInfo)}泛型方法对应的unchecked方法,
1268     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1269     * @param <T> T
1270     * @param imgData imgData
1271     * @param facePos facePos
1272     * @return CodeInfo
1273     */
1274    public <T> CodeInfo getCodeInfoUnchecked (T imgData,CodeInfo facePos) {
1275        try{
1276            return getCodeInfo(imgData,facePos);
1277        } catch(RuntimeException e){
1278            throw e;
1279        } catch(Exception e){
1280            throw new RuntimeException(e);
1281        }
1282    }
1283    //73
1284    /**
1285     * 参见{@link FaceApi#getCodeInfo(byte[],CodeInfo)}
1286     * @param imgData imgData InputStream
1287     * @param facePos facePos 
1288     * @return CodeInfo
1289     * @throws IOException IOException
1290     * @see FaceApi#getCodeInfo(byte[],CodeInfo)
1291     */
1292    public CodeInfo getCodeInfo (InputStream imgData,CodeInfo facePos) throws IOException{
1293         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),facePos);
1294    }
1295    //74
1296    /**
1297     * {@link #getCodeInfo (InputStream,CodeInfo)}对应的unchecked方法,
1298     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1299     * @param <T> T
1300     * @param imgData imgData
1301     * @param facePos facePos
1302     * @return CodeInfo
1303     */
1304    public <T> CodeInfo getCodeInfoUnchecked (InputStream imgData,CodeInfo facePos) {
1305        try{
1306            return getCodeInfo(imgData,facePos);
1307        } catch(RuntimeException e){
1308            throw e;
1309        } catch(Exception e){
1310            throw new RuntimeException(e);
1311        }
1312    }
1313
1314    //75
1315    /**
1316     * 参见{@link FaceApi#getCodeInfo(byte[],CodeInfo)}
1317     * @param imgData imgData URL
1318     * @param facePos facePos 
1319     * @return CodeInfo
1320     * @throws IOException IOException
1321     * @see FaceApi#getCodeInfo(byte[],CodeInfo)
1322     */
1323    public CodeInfo getCodeInfo (URL imgData,CodeInfo facePos) throws IOException{
1324         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),facePos);
1325    }
1326    //76
1327    /**
1328     * {@link #getCodeInfo (URL,CodeInfo)}对应的unchecked方法,
1329     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1330     * @param <T> T
1331     * @param imgData imgData
1332     * @param facePos facePos
1333     * @return CodeInfo
1334     */
1335    public <T> CodeInfo getCodeInfoUnchecked (URL imgData,CodeInfo facePos) {
1336        try{
1337            return getCodeInfo(imgData,facePos);
1338        } catch(RuntimeException e){
1339            throw e;
1340        } catch(Exception e){
1341            throw new RuntimeException(e);
1342        }
1343    }
1344
1345    //77
1346    /**
1347     * 参见{@link FaceApi#getCodeInfo(byte[],CodeInfo)}
1348     * @param imgData imgData File
1349     * @param facePos facePos 
1350     * @return CodeInfo
1351     * @throws IOException IOException
1352     * @see FaceApi#getCodeInfo(byte[],CodeInfo)
1353     */
1354    public CodeInfo getCodeInfo (File imgData,CodeInfo facePos) throws IOException{
1355         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),facePos);
1356    }
1357    //78
1358    /**
1359     * {@link #getCodeInfo (File,CodeInfo)}对应的unchecked方法,
1360     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1361     * @param <T> T
1362     * @param imgData imgData
1363     * @param facePos facePos
1364     * @return CodeInfo
1365     */
1366    public <T> CodeInfo getCodeInfoUnchecked (File imgData,CodeInfo facePos) {
1367        try{
1368            return getCodeInfo(imgData,facePos);
1369        } catch(RuntimeException e){
1370            throw e;
1371        } catch(Exception e){
1372            throw new RuntimeException(e);
1373        }
1374    }
1375
1376    //79
1377    /**
1378     * 参见{@link FaceApi#getCodeInfo(byte[],CodeInfo)}
1379     * @param imgData imgData ByteBuffer
1380     * @param facePos facePos 
1381     * @return CodeInfo
1382     * @throws IOException IOException
1383     * @see FaceApi#getCodeInfo(byte[],CodeInfo)
1384     */
1385    public CodeInfo getCodeInfo (ByteBuffer imgData,CodeInfo facePos) throws IOException{
1386         return getCodeInfo(BinaryUtils.getBytesNotEmpty(imgData),facePos);
1387    }
1388    //80
1389    /**
1390     * {@link #getCodeInfo (ByteBuffer,CodeInfo)}对应的unchecked方法,
1391     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1392     * @param <T> T
1393     * @param imgData imgData
1394     * @param facePos facePos
1395     * @return CodeInfo
1396     */
1397    public <T> CodeInfo getCodeInfoUnchecked (ByteBuffer imgData,CodeInfo facePos) {
1398        try{
1399            return getCodeInfo(imgData,facePos);
1400        } catch(RuntimeException e){
1401            throw e;
1402        } catch(Exception e){
1403            throw new RuntimeException(e);
1404        }
1405    }
1406
1407    //81
1408    /**
1409     * {@link FaceApi#hasFace(byte[])}对应的泛型方法<br>
1410    * @param <T> T
1411     * @param imgData imgData
1412     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1413     * @return boolean
1414     * @throws ImageErrorException ImageErrorException
1415     * @throws IOException IOException
1416     * @see FaceApi#hasFace(byte[])
1417     */    
1418    public <T> boolean hasFace (T imgData) throws ImageErrorException,IOException{
1419        return hasFace(BinaryUtils.getBytesNotEmpty(imgData));
1420    }
1421    //82
1422    /**
1423     * {@link FaceApi#hasFace(byte[])}泛型方法对应的unchecked方法,
1424     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1425     * @param <T> T
1426     * @param imgData imgData
1427     * @return boolean
1428     */
1429    public <T> boolean hasFaceUnchecked (T imgData) {
1430        try{
1431            return hasFace(imgData);
1432        } catch(RuntimeException e){
1433            throw e;
1434        } catch(Exception e){
1435            throw new RuntimeException(e);
1436        }
1437    }
1438    //83
1439    /**
1440     * 参见{@link FaceApi#hasFace(byte[])}
1441     * @param imgData imgData InputStream
1442     * @return boolean
1443     * @throws ImageErrorException ImageErrorException
1444     * @throws IOException IOException
1445     * @see FaceApi#hasFace(byte[])
1446     */
1447    public boolean hasFace (InputStream imgData) throws ImageErrorException,IOException{
1448         return hasFace(BinaryUtils.getBytesNotEmpty(imgData));
1449    }
1450    //84
1451    /**
1452     * {@link #hasFace (InputStream)}对应的unchecked方法,
1453     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1454     * @param <T> T
1455     * @param imgData imgData
1456     * @return boolean
1457     */
1458    public <T> boolean hasFaceUnchecked (InputStream imgData) {
1459        try{
1460            return hasFace(imgData);
1461        } catch(RuntimeException e){
1462            throw e;
1463        } catch(Exception e){
1464            throw new RuntimeException(e);
1465        }
1466    }
1467
1468    //85
1469    /**
1470     * 参见{@link FaceApi#hasFace(byte[])}
1471     * @param imgData imgData URL
1472     * @return boolean
1473     * @throws ImageErrorException ImageErrorException
1474     * @throws IOException IOException
1475     * @see FaceApi#hasFace(byte[])
1476     */
1477    public boolean hasFace (URL imgData) throws ImageErrorException,IOException{
1478         return hasFace(BinaryUtils.getBytesNotEmpty(imgData));
1479    }
1480    //86
1481    /**
1482     * {@link #hasFace (URL)}对应的unchecked方法,
1483     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1484     * @param <T> T
1485     * @param imgData imgData
1486     * @return boolean
1487     */
1488    public <T> boolean hasFaceUnchecked (URL imgData) {
1489        try{
1490            return hasFace(imgData);
1491        } catch(RuntimeException e){
1492            throw e;
1493        } catch(Exception e){
1494            throw new RuntimeException(e);
1495        }
1496    }
1497
1498    //87
1499    /**
1500     * 参见{@link FaceApi#hasFace(byte[])}
1501     * @param imgData imgData File
1502     * @return boolean
1503     * @throws ImageErrorException ImageErrorException
1504     * @throws IOException IOException
1505     * @see FaceApi#hasFace(byte[])
1506     */
1507    public boolean hasFace (File imgData) throws ImageErrorException,IOException{
1508         return hasFace(BinaryUtils.getBytesNotEmpty(imgData));
1509    }
1510    //88
1511    /**
1512     * {@link #hasFace (File)}对应的unchecked方法,
1513     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1514     * @param <T> T
1515     * @param imgData imgData
1516     * @return boolean
1517     */
1518    public <T> boolean hasFaceUnchecked (File imgData) {
1519        try{
1520            return hasFace(imgData);
1521        } catch(RuntimeException e){
1522            throw e;
1523        } catch(Exception e){
1524            throw new RuntimeException(e);
1525        }
1526    }
1527
1528    //89
1529    /**
1530     * 参见{@link FaceApi#hasFace(byte[])}
1531     * @param imgData imgData ByteBuffer
1532     * @return boolean
1533     * @throws ImageErrorException ImageErrorException
1534     * @throws IOException IOException
1535     * @see FaceApi#hasFace(byte[])
1536     */
1537    public boolean hasFace (ByteBuffer imgData) throws ImageErrorException,IOException{
1538         return hasFace(BinaryUtils.getBytesNotEmpty(imgData));
1539    }
1540    //90
1541    /**
1542     * {@link #hasFace (ByteBuffer)}对应的unchecked方法,
1543     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1544     * @param <T> T
1545     * @param imgData imgData
1546     * @return boolean
1547     */
1548    public <T> boolean hasFaceUnchecked (ByteBuffer imgData) {
1549        try{
1550            return hasFace(imgData);
1551        } catch(RuntimeException e){
1552            throw e;
1553        } catch(Exception e){
1554            throw new RuntimeException(e);
1555        }
1556    }
1557
1558    //91
1559    /**
1560     * {@link FaceApi#matDetectAndGetCodeInfo(MatType,byte[],int,int,int)}对应的泛型方法<br>
1561    * @param <T> T
1562     * @param matType matType
1563     * @param matData matData
1564     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1565     * @param width width
1566     * @param height height
1567     * @param faceNum faceNum
1568     * @return CodeInfo[]
1569     * @throws NotFaceDetectedException NotFaceDetectedException
1570     * @throws IOException IOException
1571     * @see FaceApi#matDetectAndGetCodeInfo(MatType,byte[],int,int,int)
1572     */    
1573    public <T> CodeInfo[] matDetectAndGetCodeInfo (MatType matType,T matData,int width,int height,int faceNum) throws NotFaceDetectedException,IOException{
1574        return matDetectAndGetCodeInfo(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,faceNum);
1575    }
1576    //92
1577    /**
1578     * {@link FaceApi#matDetectAndGetCodeInfo(MatType,byte[],int,int,int)}泛型方法对应的unchecked方法,
1579     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1580     * @param <T> T
1581     * @param matType matType
1582     * @param matData matData
1583     * @param width width
1584     * @param height height
1585     * @param faceNum faceNum
1586     * @return CodeInfo[]
1587     */
1588    public <T> CodeInfo[] matDetectAndGetCodeInfoUnchecked (MatType matType,T matData,int width,int height,int faceNum) {
1589        try{
1590            return matDetectAndGetCodeInfo(matType,matData,width,height,faceNum);
1591        } catch(RuntimeException e){
1592            throw e;
1593        } catch(Exception e){
1594            throw new RuntimeException(e);
1595        }
1596    }
1597    //93
1598    /**
1599     * 参见{@link FaceApi#matDetectAndGetCodeInfo(MatType,byte[],int,int,int)}
1600     * @param matType matType 
1601     * @param matData matData ByteBuffer
1602     * @param width width 
1603     * @param height height 
1604     * @param faceNum faceNum 
1605     * @return CodeInfo[]
1606     * @throws NotFaceDetectedException NotFaceDetectedException
1607     * @throws IOException IOException
1608     * @see FaceApi#matDetectAndGetCodeInfo(MatType,byte[],int,int,int)
1609     */
1610    public CodeInfo[] matDetectAndGetCodeInfo (MatType matType,ByteBuffer matData,int width,int height,int faceNum) throws NotFaceDetectedException,IOException{
1611         return matDetectAndGetCodeInfo(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,faceNum);
1612    }
1613    //94
1614    /**
1615     * {@link #matDetectAndGetCodeInfo (MatType,ByteBuffer,int,int,int)}对应的unchecked方法,
1616     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1617     * @param <T> T
1618     * @param matType matType
1619     * @param matData matData
1620     * @param width width
1621     * @param height height
1622     * @param faceNum faceNum
1623     * @return CodeInfo[]
1624     */
1625    public <T> CodeInfo[] matDetectAndGetCodeInfoUnchecked (MatType matType,ByteBuffer matData,int width,int height,int faceNum) {
1626        try{
1627            return matDetectAndGetCodeInfo(matType,matData,width,height,faceNum);
1628        } catch(RuntimeException e){
1629            throw e;
1630        } catch(Exception e){
1631            throw new RuntimeException(e);
1632        }
1633    }
1634
1635    //95
1636    /**
1637     * {@link FaceApi#matDetectFace(MatType,byte[],int,int)}对应的泛型方法<br>
1638    * @param <T> T
1639     * @param matType matType
1640     * @param matData matData
1641     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1642     * @param width width
1643     * @param height height
1644     * @return CodeInfo[]
1645     * @throws IOException IOException
1646     * @see FaceApi#matDetectFace(MatType,byte[],int,int)
1647     */    
1648    public <T> CodeInfo[] matDetectFace (MatType matType,T matData,int width,int height) throws IOException{
1649        return matDetectFace(matType,BinaryUtils.getBytesNotEmpty(matData),width,height);
1650    }
1651    //96
1652    /**
1653     * {@link FaceApi#matDetectFace(MatType,byte[],int,int)}泛型方法对应的unchecked方法,
1654     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1655     * @param <T> T
1656     * @param matType matType
1657     * @param matData matData
1658     * @param width width
1659     * @param height height
1660     * @return CodeInfo[]
1661     */
1662    public <T> CodeInfo[] matDetectFaceUnchecked (MatType matType,T matData,int width,int height) {
1663        try{
1664            return matDetectFace(matType,matData,width,height);
1665        } catch(RuntimeException e){
1666            throw e;
1667        } catch(Exception e){
1668            throw new RuntimeException(e);
1669        }
1670    }
1671    //97
1672    /**
1673     * 参见{@link FaceApi#matDetectFace(MatType,byte[],int,int)}
1674     * @param matType matType 
1675     * @param matData matData ByteBuffer
1676     * @param width width 
1677     * @param height height 
1678     * @return CodeInfo[]
1679     * @throws IOException IOException
1680     * @see FaceApi#matDetectFace(MatType,byte[],int,int)
1681     */
1682    public CodeInfo[] matDetectFace (MatType matType,ByteBuffer matData,int width,int height) throws IOException{
1683         return matDetectFace(matType,BinaryUtils.getBytesNotEmpty(matData),width,height);
1684    }
1685    //98
1686    /**
1687     * {@link #matDetectFace (MatType,ByteBuffer,int,int)}对应的unchecked方法,
1688     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1689     * @param <T> T
1690     * @param matType matType
1691     * @param matData matData
1692     * @param width width
1693     * @param height height
1694     * @return CodeInfo[]
1695     */
1696    public <T> CodeInfo[] matDetectFaceUnchecked (MatType matType,ByteBuffer matData,int width,int height) {
1697        try{
1698            return matDetectFace(matType,matData,width,height);
1699        } catch(RuntimeException e){
1700            throw e;
1701        } catch(Exception e){
1702            throw new RuntimeException(e);
1703        }
1704    }
1705
1706    //99
1707    /**
1708     * {@link FaceApi#matDetectMaxFace(MatType,byte[],int,int)}对应的泛型方法<br>
1709    * @param <T> T
1710     * @param matType matType
1711     * @param matData matData
1712     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1713     * @param width width
1714     * @param height height
1715     * @return CodeInfo
1716     * @throws NotFaceDetectedException NotFaceDetectedException
1717     * @throws IOException IOException
1718     * @see FaceApi#matDetectMaxFace(MatType,byte[],int,int)
1719     */    
1720    public <T> CodeInfo matDetectMaxFace (MatType matType,T matData,int width,int height) throws NotFaceDetectedException,IOException{
1721        return matDetectMaxFace(matType,BinaryUtils.getBytesNotEmpty(matData),width,height);
1722    }
1723    //100
1724    /**
1725     * {@link FaceApi#matDetectMaxFace(MatType,byte[],int,int)}泛型方法对应的unchecked方法,
1726     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1727     * @param <T> T
1728     * @param matType matType
1729     * @param matData matData
1730     * @param width width
1731     * @param height height
1732     * @return CodeInfo
1733     */
1734    public <T> CodeInfo matDetectMaxFaceUnchecked (MatType matType,T matData,int width,int height) {
1735        try{
1736            return matDetectMaxFace(matType,matData,width,height);
1737        } catch(RuntimeException e){
1738            throw e;
1739        } catch(Exception e){
1740            throw new RuntimeException(e);
1741        }
1742    }
1743    //101
1744    /**
1745     * 参见{@link FaceApi#matDetectMaxFace(MatType,byte[],int,int)}
1746     * @param matType matType 
1747     * @param matData matData ByteBuffer
1748     * @param width width 
1749     * @param height height 
1750     * @return CodeInfo
1751     * @throws NotFaceDetectedException NotFaceDetectedException
1752     * @throws IOException IOException
1753     * @see FaceApi#matDetectMaxFace(MatType,byte[],int,int)
1754     */
1755    public CodeInfo matDetectMaxFace (MatType matType,ByteBuffer matData,int width,int height) throws NotFaceDetectedException,IOException{
1756         return matDetectMaxFace(matType,BinaryUtils.getBytesNotEmpty(matData),width,height);
1757    }
1758    //102
1759    /**
1760     * {@link #matDetectMaxFace (MatType,ByteBuffer,int,int)}对应的unchecked方法,
1761     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1762     * @param <T> T
1763     * @param matType matType
1764     * @param matData matData
1765     * @param width width
1766     * @param height height
1767     * @return CodeInfo
1768     */
1769    public <T> CodeInfo matDetectMaxFaceUnchecked (MatType matType,ByteBuffer matData,int width,int height) {
1770        try{
1771            return matDetectMaxFace(matType,matData,width,height);
1772        } catch(RuntimeException e){
1773            throw e;
1774        } catch(Exception e){
1775            throw new RuntimeException(e);
1776        }
1777    }
1778
1779    //103
1780    /**
1781     * {@link FaceApi#matGetCodeInfo(MatType,byte[],int,int,int,net.gdface.sdk.CodeInfo[])}对应的泛型方法<br>
1782    * @param <T> T
1783     * @param matType matType
1784     * @param matData matData
1785     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1786     * @param width width
1787     * @param height height
1788     * @param facenum facenum
1789     * @param facePos facePos
1790     * @return CodeInfo[]
1791     * @throws NotFaceDetectedException NotFaceDetectedException
1792     * @throws IOException IOException
1793     * @see FaceApi#matGetCodeInfo(MatType,byte[],int,int,int,net.gdface.sdk.CodeInfo[])
1794     */    
1795    public <T> CodeInfo[] matGetCodeInfo (MatType matType,T matData,int width,int height,int facenum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1796        return matGetCodeInfo(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,facenum,facePos);
1797    }
1798    //104
1799    /**
1800     * {@link FaceApi#matGetCodeInfo(MatType,byte[],int,int,int,net.gdface.sdk.CodeInfo[])}泛型方法对应的unchecked方法,
1801     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1802     * @param <T> T
1803     * @param matType matType
1804     * @param matData matData
1805     * @param width width
1806     * @param height height
1807     * @param facenum facenum
1808     * @param facePos facePos
1809     * @return CodeInfo[]
1810     */
1811    public <T> CodeInfo[] matGetCodeInfoUnchecked (MatType matType,T matData,int width,int height,int facenum,CodeInfo[] facePos) {
1812        try{
1813            return matGetCodeInfo(matType,matData,width,height,facenum,facePos);
1814        } catch(RuntimeException e){
1815            throw e;
1816        } catch(Exception e){
1817            throw new RuntimeException(e);
1818        }
1819    }
1820    //105
1821    /**
1822     * 参见{@link FaceApi#matGetCodeInfo(MatType,byte[],int,int,int,net.gdface.sdk.CodeInfo[])}
1823     * @param matType matType 
1824     * @param matData matData ByteBuffer
1825     * @param width width 
1826     * @param height height 
1827     * @param facenum facenum 
1828     * @param facePos facePos 
1829     * @return CodeInfo[]
1830     * @throws NotFaceDetectedException NotFaceDetectedException
1831     * @throws IOException IOException
1832     * @see FaceApi#matGetCodeInfo(MatType,byte[],int,int,int,net.gdface.sdk.CodeInfo[])
1833     */
1834    public CodeInfo[] matGetCodeInfo (MatType matType,ByteBuffer matData,int width,int height,int facenum,CodeInfo[] facePos) throws NotFaceDetectedException,IOException{
1835         return matGetCodeInfo(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,facenum,facePos);
1836    }
1837    //106
1838    /**
1839     * {@link #matGetCodeInfo (MatType,ByteBuffer,int,int,int,CodeInfo[])}对应的unchecked方法,
1840     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1841     * @param <T> T
1842     * @param matType matType
1843     * @param matData matData
1844     * @param width width
1845     * @param height height
1846     * @param facenum facenum
1847     * @param facePos facePos
1848     * @return CodeInfo[]
1849     */
1850    public <T> CodeInfo[] matGetCodeInfoUnchecked (MatType matType,ByteBuffer matData,int width,int height,int facenum,CodeInfo[] facePos) {
1851        try{
1852            return matGetCodeInfo(matType,matData,width,height,facenum,facePos);
1853        } catch(RuntimeException e){
1854            throw e;
1855        } catch(Exception e){
1856            throw new RuntimeException(e);
1857        }
1858    }
1859
1860    //107
1861    /**
1862     * {@link FaceApi#matGetCodeInfo(MatType,byte[],int,int,CodeInfo)}对应的泛型方法<br>
1863    * @param <T> T
1864     * @param matType matType
1865     * @param matData matData
1866     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1867     * @param width width
1868     * @param height height
1869     * @param facePos facePos
1870     * @return CodeInfo
1871     * @throws IOException IOException
1872     * @see FaceApi#matGetCodeInfo(MatType,byte[],int,int,CodeInfo)
1873     */    
1874    public <T> CodeInfo matGetCodeInfo (MatType matType,T matData,int width,int height,CodeInfo facePos) throws IOException{
1875        return matGetCodeInfo(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,facePos);
1876    }
1877    //108
1878    /**
1879     * {@link FaceApi#matGetCodeInfo(MatType,byte[],int,int,CodeInfo)}泛型方法对应的unchecked方法,
1880     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1881     * @param <T> T
1882     * @param matType matType
1883     * @param matData matData
1884     * @param width width
1885     * @param height height
1886     * @param facePos facePos
1887     * @return CodeInfo
1888     */
1889    public <T> CodeInfo matGetCodeInfoUnchecked (MatType matType,T matData,int width,int height,CodeInfo facePos) {
1890        try{
1891            return matGetCodeInfo(matType,matData,width,height,facePos);
1892        } catch(RuntimeException e){
1893            throw e;
1894        } catch(Exception e){
1895            throw new RuntimeException(e);
1896        }
1897    }
1898    //109
1899    /**
1900     * 参见{@link FaceApi#matGetCodeInfo(MatType,byte[],int,int,CodeInfo)}
1901     * @param matType matType 
1902     * @param matData matData ByteBuffer
1903     * @param width width 
1904     * @param height height 
1905     * @param facePos facePos 
1906     * @return CodeInfo
1907     * @throws IOException IOException
1908     * @see FaceApi#matGetCodeInfo(MatType,byte[],int,int,CodeInfo)
1909     */
1910    public CodeInfo matGetCodeInfo (MatType matType,ByteBuffer matData,int width,int height,CodeInfo facePos) throws IOException{
1911         return matGetCodeInfo(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,facePos);
1912    }
1913    //110
1914    /**
1915     * {@link #matGetCodeInfo (MatType,ByteBuffer,int,int,CodeInfo)}对应的unchecked方法,
1916     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1917     * @param <T> T
1918     * @param matType matType
1919     * @param matData matData
1920     * @param width width
1921     * @param height height
1922     * @param facePos facePos
1923     * @return CodeInfo
1924     */
1925    public <T> CodeInfo matGetCodeInfoUnchecked (MatType matType,ByteBuffer matData,int width,int height,CodeInfo facePos) {
1926        try{
1927            return matGetCodeInfo(matType,matData,width,height,facePos);
1928        } catch(RuntimeException e){
1929            throw e;
1930        } catch(Exception e){
1931            throw new RuntimeException(e);
1932        }
1933    }
1934
1935    //111
1936    /**
1937     * {@link FaceApi#matHasFace(MatType,byte[],int,int)}对应的泛型方法<br>
1938    * @param <T> T
1939     * @param matType matType
1940     * @param matData matData
1941     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
1942     * @param width width
1943     * @param height height
1944     * @return boolean
1945     * @throws IOException IOException
1946     * @see FaceApi#matHasFace(MatType,byte[],int,int)
1947     */    
1948    public <T> boolean matHasFace (MatType matType,T matData,int width,int height) throws IOException{
1949        return matHasFace(matType,BinaryUtils.getBytesNotEmpty(matData),width,height);
1950    }
1951    //112
1952    /**
1953     * {@link FaceApi#matHasFace(MatType,byte[],int,int)}泛型方法对应的unchecked方法,
1954     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1955     * @param <T> T
1956     * @param matType matType
1957     * @param matData matData
1958     * @param width width
1959     * @param height height
1960     * @return boolean
1961     */
1962    public <T> boolean matHasFaceUnchecked (MatType matType,T matData,int width,int height) {
1963        try{
1964            return matHasFace(matType,matData,width,height);
1965        } catch(RuntimeException e){
1966            throw e;
1967        } catch(Exception e){
1968            throw new RuntimeException(e);
1969        }
1970    }
1971    //113
1972    /**
1973     * 参见{@link FaceApi#matHasFace(MatType,byte[],int,int)}
1974     * @param matType matType 
1975     * @param matData matData ByteBuffer
1976     * @param width width 
1977     * @param height height 
1978     * @return boolean
1979     * @throws IOException IOException
1980     * @see FaceApi#matHasFace(MatType,byte[],int,int)
1981     */
1982    public boolean matHasFace (MatType matType,ByteBuffer matData,int width,int height) throws IOException{
1983         return matHasFace(matType,BinaryUtils.getBytesNotEmpty(matData),width,height);
1984    }
1985    //114
1986    /**
1987     * {@link #matHasFace (MatType,ByteBuffer,int,int)}对应的unchecked方法,
1988     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
1989     * @param <T> T
1990     * @param matType matType
1991     * @param matData matData
1992     * @param width width
1993     * @param height height
1994     * @return boolean
1995     */
1996    public <T> boolean matHasFaceUnchecked (MatType matType,ByteBuffer matData,int width,int height) {
1997        try{
1998            return matHasFace(matType,matData,width,height);
1999        } catch(RuntimeException e){
2000            throw e;
2001        } catch(Exception e){
2002            throw new RuntimeException(e);
2003        }
2004    }
2005
2006    //115
2007    /**
2008     * {@link FaceApi#matSearchFaces(MatType,byte[],int,int,CodeInfo,double,int)}对应的泛型方法<br>
2009    * @param <T> T
2010     * @param matType matType
2011     * @param matData matData
2012     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
2013     * @param width width
2014     * @param height height
2015     * @param facePos facePos
2016     * @param similarty similarty
2017     * @param rows rows
2018     * @return FseResult[]
2019     * @throws ImageErrorException ImageErrorException
2020     * @throws NotFaceDetectedException NotFaceDetectedException
2021     * @throws IOException IOException
2022     * @see FaceApi#matSearchFaces(MatType,byte[],int,int,CodeInfo,double,int)
2023     */    
2024    public <T> FseResult[] matSearchFaces (MatType matType,T matData,int width,int height,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2025        return matSearchFaces(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,facePos,similarty,rows);
2026    }
2027    //116
2028    /**
2029     * {@link FaceApi#matSearchFaces(MatType,byte[],int,int,CodeInfo,double,int)}泛型方法对应的unchecked方法,
2030     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2031     * @param <T> T
2032     * @param matType matType
2033     * @param matData matData
2034     * @param width width
2035     * @param height height
2036     * @param facePos facePos
2037     * @param similarty similarty
2038     * @param rows rows
2039     * @return FseResult[]
2040     */
2041    public <T> FseResult[] matSearchFacesUnchecked (MatType matType,T matData,int width,int height,CodeInfo facePos,double similarty,int rows) {
2042        try{
2043            return matSearchFaces(matType,matData,width,height,facePos,similarty,rows);
2044        } catch(RuntimeException e){
2045            throw e;
2046        } catch(Exception e){
2047            throw new RuntimeException(e);
2048        }
2049    }
2050    //117
2051    /**
2052     * 参见{@link FaceApi#matSearchFaces(MatType,byte[],int,int,CodeInfo,double,int)}
2053     * @param matType matType 
2054     * @param matData matData ByteBuffer
2055     * @param width width 
2056     * @param height height 
2057     * @param facePos facePos 
2058     * @param similarty similarty 
2059     * @param rows rows 
2060     * @return FseResult[]
2061     * @throws ImageErrorException ImageErrorException
2062     * @throws NotFaceDetectedException NotFaceDetectedException
2063     * @throws IOException IOException
2064     * @see FaceApi#matSearchFaces(MatType,byte[],int,int,CodeInfo,double,int)
2065     */
2066    public FseResult[] matSearchFaces (MatType matType,ByteBuffer matData,int width,int height,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2067         return matSearchFaces(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,facePos,similarty,rows);
2068    }
2069    //118
2070    /**
2071     * {@link #matSearchFaces (MatType,ByteBuffer,int,int,CodeInfo,double,int)}对应的unchecked方法,
2072     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2073     * @param <T> T
2074     * @param matType matType
2075     * @param matData matData
2076     * @param width width
2077     * @param height height
2078     * @param facePos facePos
2079     * @param similarty similarty
2080     * @param rows rows
2081     * @return FseResult[]
2082     */
2083    public <T> FseResult[] matSearchFacesUnchecked (MatType matType,ByteBuffer matData,int width,int height,CodeInfo facePos,double similarty,int rows) {
2084        try{
2085            return matSearchFaces(matType,matData,width,height,facePos,similarty,rows);
2086        } catch(RuntimeException e){
2087            throw e;
2088        } catch(Exception e){
2089            throw new RuntimeException(e);
2090        }
2091    }
2092
2093    //119
2094    /**
2095     * {@link FaceApi#matWearMask(MatType,byte[],int,int,CodeInfo)}对应的泛型方法<br>
2096    * @param <T> T
2097     * @param matType matType
2098     * @param matData matData
2099     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
2100     * @param width width
2101     * @param height height
2102     * @param faceInfo faceInfo
2103     * @return Boolean
2104     * @throws IOException IOException
2105     * @see FaceApi#matWearMask(MatType,byte[],int,int,CodeInfo)
2106     */    
2107    public <T> Boolean matWearMask (MatType matType,T matData,int width,int height,CodeInfo faceInfo) throws IOException{
2108        return matWearMask(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,faceInfo);
2109    }
2110    //120
2111    /**
2112     * {@link FaceApi#matWearMask(MatType,byte[],int,int,CodeInfo)}泛型方法对应的unchecked方法,
2113     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2114     * @param <T> T
2115     * @param matType matType
2116     * @param matData matData
2117     * @param width width
2118     * @param height height
2119     * @param faceInfo faceInfo
2120     * @return Boolean
2121     */
2122    public <T> Boolean matWearMaskUnchecked (MatType matType,T matData,int width,int height,CodeInfo faceInfo) {
2123        try{
2124            return matWearMask(matType,matData,width,height,faceInfo);
2125        } catch(RuntimeException e){
2126            throw e;
2127        } catch(Exception e){
2128            throw new RuntimeException(e);
2129        }
2130    }
2131    //121
2132    /**
2133     * 参见{@link FaceApi#matWearMask(MatType,byte[],int,int,CodeInfo)}
2134     * @param matType matType 
2135     * @param matData matData ByteBuffer
2136     * @param width width 
2137     * @param height height 
2138     * @param faceInfo faceInfo 
2139     * @return Boolean
2140     * @throws IOException IOException
2141     * @see FaceApi#matWearMask(MatType,byte[],int,int,CodeInfo)
2142     */
2143    public Boolean matWearMask (MatType matType,ByteBuffer matData,int width,int height,CodeInfo faceInfo) throws IOException{
2144         return matWearMask(matType,BinaryUtils.getBytesNotEmpty(matData),width,height,faceInfo);
2145    }
2146    //122
2147    /**
2148     * {@link #matWearMask (MatType,ByteBuffer,int,int,CodeInfo)}对应的unchecked方法,
2149     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2150     * @param <T> T
2151     * @param matType matType
2152     * @param matData matData
2153     * @param width width
2154     * @param height height
2155     * @param faceInfo faceInfo
2156     * @return Boolean
2157     */
2158    public <T> Boolean matWearMaskUnchecked (MatType matType,ByteBuffer matData,int width,int height,CodeInfo faceInfo) {
2159        try{
2160            return matWearMask(matType,matData,width,height,faceInfo);
2161        } catch(RuntimeException e){
2162            throw e;
2163        } catch(Exception e){
2164            throw new RuntimeException(e);
2165        }
2166    }
2167
2168    //123
2169    /**
2170     * {@link FaceApi#searchFaces(byte[],CodeInfo,double,int)}对应的泛型方法<br>
2171    * @param <T> T
2172     * @param imgData imgData
2173     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
2174     * @param facePos facePos
2175     * @param similarty similarty
2176     * @param rows rows
2177     * @return FseResult[]
2178     * @throws ImageErrorException ImageErrorException
2179     * @throws NotFaceDetectedException NotFaceDetectedException
2180     * @throws IOException IOException
2181     * @see FaceApi#searchFaces(byte[],CodeInfo,double,int)
2182     */    
2183    public <T> FseResult[] searchFaces (T imgData,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2184        return searchFaces(BinaryUtils.getBytesNotEmpty(imgData),facePos,similarty,rows);
2185    }
2186    //124
2187    /**
2188     * {@link FaceApi#searchFaces(byte[],CodeInfo,double,int)}泛型方法对应的unchecked方法,
2189     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2190     * @param <T> T
2191     * @param imgData imgData
2192     * @param facePos facePos
2193     * @param similarty similarty
2194     * @param rows rows
2195     * @return FseResult[]
2196     */
2197    public <T> FseResult[] searchFacesUnchecked (T imgData,CodeInfo facePos,double similarty,int rows) {
2198        try{
2199            return searchFaces(imgData,facePos,similarty,rows);
2200        } catch(RuntimeException e){
2201            throw e;
2202        } catch(Exception e){
2203            throw new RuntimeException(e);
2204        }
2205    }
2206    //125
2207    /**
2208     * 参见{@link FaceApi#searchFaces(byte[],CodeInfo,double,int)}
2209     * @param imgData imgData InputStream
2210     * @param facePos facePos 
2211     * @param similarty similarty 
2212     * @param rows rows 
2213     * @return FseResult[]
2214     * @throws ImageErrorException ImageErrorException
2215     * @throws NotFaceDetectedException NotFaceDetectedException
2216     * @throws IOException IOException
2217     * @see FaceApi#searchFaces(byte[],CodeInfo,double,int)
2218     */
2219    public FseResult[] searchFaces (InputStream imgData,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2220         return searchFaces(BinaryUtils.getBytesNotEmpty(imgData),facePos,similarty,rows);
2221    }
2222    //126
2223    /**
2224     * {@link #searchFaces (InputStream,CodeInfo,double,int)}对应的unchecked方法,
2225     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2226     * @param <T> T
2227     * @param imgData imgData
2228     * @param facePos facePos
2229     * @param similarty similarty
2230     * @param rows rows
2231     * @return FseResult[]
2232     */
2233    public <T> FseResult[] searchFacesUnchecked (InputStream imgData,CodeInfo facePos,double similarty,int rows) {
2234        try{
2235            return searchFaces(imgData,facePos,similarty,rows);
2236        } catch(RuntimeException e){
2237            throw e;
2238        } catch(Exception e){
2239            throw new RuntimeException(e);
2240        }
2241    }
2242
2243    //127
2244    /**
2245     * 参见{@link FaceApi#searchFaces(byte[],CodeInfo,double,int)}
2246     * @param imgData imgData URL
2247     * @param facePos facePos 
2248     * @param similarty similarty 
2249     * @param rows rows 
2250     * @return FseResult[]
2251     * @throws ImageErrorException ImageErrorException
2252     * @throws NotFaceDetectedException NotFaceDetectedException
2253     * @throws IOException IOException
2254     * @see FaceApi#searchFaces(byte[],CodeInfo,double,int)
2255     */
2256    public FseResult[] searchFaces (URL imgData,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2257         return searchFaces(BinaryUtils.getBytesNotEmpty(imgData),facePos,similarty,rows);
2258    }
2259    //128
2260    /**
2261     * {@link #searchFaces (URL,CodeInfo,double,int)}对应的unchecked方法,
2262     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2263     * @param <T> T
2264     * @param imgData imgData
2265     * @param facePos facePos
2266     * @param similarty similarty
2267     * @param rows rows
2268     * @return FseResult[]
2269     */
2270    public <T> FseResult[] searchFacesUnchecked (URL imgData,CodeInfo facePos,double similarty,int rows) {
2271        try{
2272            return searchFaces(imgData,facePos,similarty,rows);
2273        } catch(RuntimeException e){
2274            throw e;
2275        } catch(Exception e){
2276            throw new RuntimeException(e);
2277        }
2278    }
2279
2280    //129
2281    /**
2282     * 参见{@link FaceApi#searchFaces(byte[],CodeInfo,double,int)}
2283     * @param imgData imgData File
2284     * @param facePos facePos 
2285     * @param similarty similarty 
2286     * @param rows rows 
2287     * @return FseResult[]
2288     * @throws ImageErrorException ImageErrorException
2289     * @throws NotFaceDetectedException NotFaceDetectedException
2290     * @throws IOException IOException
2291     * @see FaceApi#searchFaces(byte[],CodeInfo,double,int)
2292     */
2293    public FseResult[] searchFaces (File imgData,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2294         return searchFaces(BinaryUtils.getBytesNotEmpty(imgData),facePos,similarty,rows);
2295    }
2296    //130
2297    /**
2298     * {@link #searchFaces (File,CodeInfo,double,int)}对应的unchecked方法,
2299     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2300     * @param <T> T
2301     * @param imgData imgData
2302     * @param facePos facePos
2303     * @param similarty similarty
2304     * @param rows rows
2305     * @return FseResult[]
2306     */
2307    public <T> FseResult[] searchFacesUnchecked (File imgData,CodeInfo facePos,double similarty,int rows) {
2308        try{
2309            return searchFaces(imgData,facePos,similarty,rows);
2310        } catch(RuntimeException e){
2311            throw e;
2312        } catch(Exception e){
2313            throw new RuntimeException(e);
2314        }
2315    }
2316
2317    //131
2318    /**
2319     * 参见{@link FaceApi#searchFaces(byte[],CodeInfo,double,int)}
2320     * @param imgData imgData ByteBuffer
2321     * @param facePos facePos 
2322     * @param similarty similarty 
2323     * @param rows rows 
2324     * @return FseResult[]
2325     * @throws ImageErrorException ImageErrorException
2326     * @throws NotFaceDetectedException NotFaceDetectedException
2327     * @throws IOException IOException
2328     * @see FaceApi#searchFaces(byte[],CodeInfo,double,int)
2329     */
2330    public FseResult[] searchFaces (ByteBuffer imgData,CodeInfo facePos,double similarty,int rows) throws ImageErrorException,NotFaceDetectedException,IOException{
2331         return searchFaces(BinaryUtils.getBytesNotEmpty(imgData),facePos,similarty,rows);
2332    }
2333    //132
2334    /**
2335     * {@link #searchFaces (ByteBuffer,CodeInfo,double,int)}对应的unchecked方法,
2336     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2337     * @param <T> T
2338     * @param imgData imgData
2339     * @param facePos facePos
2340     * @param similarty similarty
2341     * @param rows rows
2342     * @return FseResult[]
2343     */
2344    public <T> FseResult[] searchFacesUnchecked (ByteBuffer imgData,CodeInfo facePos,double similarty,int rows) {
2345        try{
2346            return searchFaces(imgData,facePos,similarty,rows);
2347        } catch(RuntimeException e){
2348            throw e;
2349        } catch(Exception e){
2350            throw new RuntimeException(e);
2351        }
2352    }
2353
2354    //133
2355    /**
2356     * {@link FaceApi#searchFeatures(byte[],double,int)}对应的泛型方法<br>
2357    * @param <T> T
2358     * @param feature feature
2359     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
2360     * @param similarty similarty
2361     * @param rows rows
2362     * @return FseResult[]
2363     * @throws IOException IOException
2364     * @see FaceApi#searchFeatures(byte[],double,int)
2365     */    
2366    public <T> FseResult[] searchFeatures (T feature,double similarty,int rows) throws IOException{
2367        return searchFeatures(BinaryUtils.getBytesNotEmpty(feature),similarty,rows);
2368    }
2369    //134
2370    /**
2371     * {@link FaceApi#searchFeatures(byte[],double,int)}泛型方法对应的unchecked方法,
2372     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2373     * @param <T> T
2374     * @param feature feature
2375     * @param similarty similarty
2376     * @param rows rows
2377     * @return FseResult[]
2378     */
2379    public <T> FseResult[] searchFeaturesUnchecked (T feature,double similarty,int rows) {
2380        try{
2381            return searchFeatures(feature,similarty,rows);
2382        } catch(RuntimeException e){
2383            throw e;
2384        } catch(Exception e){
2385            throw new RuntimeException(e);
2386        }
2387    }
2388    //135
2389    /**
2390     * {@link FaceApi#wearMask(byte[],CodeInfo)}对应的泛型方法<br>
2391    * @param <T> T
2392     * @param imgData imgData
2393     *            泛型参数,参见 {@link net.gdface.utils.BinaryUtils#getBytesNotEmpty(Object)}
2394     * @param faceInfo faceInfo
2395     * @return Boolean
2396     * @throws ImageErrorException ImageErrorException
2397     * @throws IOException IOException
2398     * @see FaceApi#wearMask(byte[],CodeInfo)
2399     */    
2400    public <T> Boolean wearMask (T imgData,CodeInfo faceInfo) throws ImageErrorException,IOException{
2401        return wearMask(BinaryUtils.getBytesNotEmpty(imgData),faceInfo);
2402    }
2403    //136
2404    /**
2405     * {@link FaceApi#wearMask(byte[],CodeInfo)}泛型方法对应的unchecked方法,
2406     * 所有显式申明的异常都被封装到{@link RuntimeException}抛出<br>
2407     * @param <T> T
2408     * @param imgData imgData
2409     * @param faceInfo faceInfo
2410     * @return Boolean
2411     */
2412    public <T> Boolean wearMaskUnchecked (T imgData,CodeInfo faceInfo) {
2413        try{
2414            return wearMask(imgData,faceInfo);
2415        } catch(RuntimeException e){
2416            throw e;
2417        } catch(Exception e){
2418            throw new RuntimeException(e);
2419        }
2420    }
2421
2422}