我对Camera2 API的预览缩放有问题.我正在使用TextureView.
我想只缩放TextureView中显示的预览流.
我想缩放我使用Zoom Gesture的区域.
我使用SimpleOnScaleGestureListener!
我添加了以下代码.zoomingFactor和x和y位置都是正确的.
private void updateTextureViewSize(float xPosi,float yPosi, float scale){
float scaleX = 1.0f;
float scaleY = 1.0f;
float mVideoWidth = mCamcontrol.getmPreviewSize().getWidth();
float mVideoHeight = mCamcontrol.getmPreviewSize().getHeight();
int rotation = getWindowManager().getDefaultDisplay().getRotation();
RectF viewRect = new RectF(0, 0, 1440, 2560);
RectF bufferRect = new RectF(0, 0, mVideoHeight, mVideoWidth);
bufferRect.offset(xPosi - bufferRect.centerX(), yPosi - bufferRect.centerY());
//16:9 faktor
scaleX = ((mScale * scale) / 9f) * 16f;
scaleY = ((mScale * scale) / 16f) * 9f;
Matrix matrix = new …Run Code Online (Sandbox Code Playgroud) 我想将一个简单的java数组传递给c.
目前我使用以下.i文件.
%module example
%include "arrays_java.i"
%include "example.h"
%{
#include "example.h"
%}
Run Code Online (Sandbox Code Playgroud)
使用arrays_java.i标头接受了java数组.但它制作了数组的完整副本,这对我来说很慢.我尝试用这些构建一个类型映射,我可以使用GetDoubleArray函数来获取java数组的指针.在我使用swig之前,我使用JNI GetDoubleArrayElements构建自己的包装器,这要快得多.
下面你可以看到我尝试在类型映射中使用Jni函数.
%typemap(jtype) (double *values, int lenght) "double[]"
%typemap(jstype) (double *values, int lenght) "double[]"
%typemap(javain) (double *values, int lenght) "$javainput"
%typemap(jni) (double *values, int lenght) "jdoubleArray"
%typemap(in) (double *values, int lenght) {
$1 = (double *)JCALL2(GetDoubleArrayElements, jenv, $input, NULL);
$2 = (int) JCALL1(GetArrayLength, jenv, $input);
}
%apply (double * DOUBLE, int LENGTH) { (double * doubleArray, long len) };
Run Code Online (Sandbox Code Playgroud)
但swig只为我构建了一个javaclass(SWIGTYPE_p_double),我应该使用它.我只想传递一个简单的java数组并在c中使用这个java数组指针.
希望你能帮助我
编辑:
在这里,您可以看到我的完整.i文件.我纠正了长度失败.同样的问题
%module exampleModule
%include "std_string.i" …Run Code Online (Sandbox Code Playgroud)