e.printStackTrace();
}
if (returnBm == null) {
returnBm = bm;
}
if (bm != returnBm) {
bm.recycle();
}
return returnBm;
}
封装了两个方法,依次调用可以解决三星手机照片的问题。两个方法主要的工作就是,得到取出来的照片被旋转的角度,然后再将角度旋转回去,就可以得到原来的照片。因为并不是所有的手机在获取照片时,照片都会被旋转,所以得先判断一下照片有没有被旋转,再决定是否需要将它旋转调整。
行,这样最后就获得到了正确的 BitMap 照片,可以进行下一步了。
传照片获取数据
传照片获取数据,主要是运用了 Retrofit 和 RxJava 的封装。请求的参数可以参考 Face++ 的官方文档。
/**
-
retrofit 面部识别请求的网络服务
-
@author chaochaowu
*/
public interface FaceppService {
/**
-
@param apikey
-
@param apiSecret
-
@param imageBase64
-
@param returnLandmark
-
@param returnAttributes
-
@return
*/
@POST(“facepp/v3/detect”)
@FormUrlEncoded
Observable getFaceInfo(@Field(“api_key”) String apikey,
@Field(“api_secret”) String apiSecret,
@Field(“image_base64”) String imageBase64,
@Field(“return_landmark”) int returnLandmark,
@Field(“return_attributes”) String returnAttributes);
}
照片需要进行 base64 转码后上传至服务器,