用于独立ML工具包SDK的FirebaseVisonImageMetadata的替换

用于独立ML工具包SDK的FirebaseVisonImageMetadata的替换,image,firebase-mlkit,google-mlkit,Image,Firebase Mlkit,Google Mlkit,我一直在从Firebase ML工具包迁移到新的独立ML工具包 创建FirebaseVisionImage时,我曾将旋转作为FirebaseVisionImageMetadata.rotation\u 180传递,但根据,已删除FirebaseVisionImageMetadata类 如何在使用新SDK类时设置旋转值 旧代码: mFaceDetector.detectInImage(FirebaseVisionImage.fromMediaImage( finalImage,

我一直在从Firebase ML工具包迁移到新的独立ML工具包

创建
FirebaseVisionImage
时,我曾将旋转作为
FirebaseVisionImageMetadata.rotation\u 180
传递,但根据,已删除
FirebaseVisionImageMetadata

如何在使用新SDK类时设置旋转值

旧代码:

 mFaceDetector.detectInImage(FirebaseVisionImage.fromMediaImage(
       finalImage, 
       FirebaseVisionImageMetadata.ROTATION_180))
            .addOnSuccessListener(faces -> {
                 // Some logic
             });

这是通过将旋转值以度为单位传递为
int
来解决的

由于新SDK需要
InputImage
而不是
FirebaseVisionImage
,因此它的
fromMediaImage
方法实现给出了这个想法。以下是函数:

@NonNull
@RequiresApi(19)
public static InputImage fromMediaImage(@NonNull Image var0, int var1) {
    long var2 = SystemClock.elapsedRealtime();
    Preconditions.checkNotNull(var0, "Please provide a valid image");
    Preconditions.checkArgument(var1 == 0 || var1 == 90 || var1 == 180 || var1 == 270, "Invalid rotation. Only 0, 90, 180, 270 are supported currently.");

    // ...other logic
}
这表明新函数希望第二个参数为
0
90
180
270
作为
int

因此,我们可以将旋转传递为:

mFaceDetector.process(InputImage.fromMediaImage(finalImage, 180)).addOnSuccessListener(faces -> {
     // Some logic
});