Skip to content

Commit caac9dc

Browse files
authored
Merge pull request #67 from shitouren1994/clear-file
添加滤镜瘦脸大眼,添加iris检测。
2 parents c53a6ed + daafcc5 commit caac9dc

31 files changed

+1708
-204
lines changed

Android/source/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dependencies {
4141
implementation 'com.google.android.material:material:1.4.0'
4242
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
4343
//TODO change path to real
44-
implementation files('path_to/tengine-kit1.0.0.aar')
44+
implementation files('path_to/tengine-kit1.0.1.aar')
4545
testImplementation 'junit:junit:4.+'
4646
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
4747
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

Android/source/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
<activity android:name=".bodydemo.BodyEntryActivity" />
3636
<activity android:name=".bodydemo.BodyBitmapActivity" />
3737
<activity android:name=".bodydemo.BodyFrameActivity" />
38+
<activity android:name=".facedemo.FaceEffectActivity" />
3839
</application>
3940

4041
</manifest>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Loading
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.tenginekit.tenginedemo.camera2
2+
3+
import android.app.Activity
4+
import android.content.Context
5+
import android.graphics.SurfaceTexture
6+
import android.opengl.GLES20
7+
import android.opengl.GLSurfaceView
8+
import android.util.Log
9+
import com.tengine.cameratest.CameraFilter
10+
import javax.microedition.khronos.egl.EGLConfig
11+
import javax.microedition.khronos.opengles.GL10
12+
13+
abstract class CameraV2BaseRenderer(
14+
) : GLSurfaceView.Renderer {
15+
var cameraV2GLSurfaceView: CameraV2GLSurfaceView? = null
16+
var cameraManager: CameraV2Manager? = null
17+
var mSurfaceTexture: SurfaceTexture? = null
18+
val transformMatrix = FloatArray(16)
19+
var cameraFilter: CameraFilter? = null
20+
var context: Context? = null
21+
22+
fun setUp(surfaceView: CameraV2GLSurfaceView, camera: CameraV2Manager, activity: Activity) {
23+
cameraV2GLSurfaceView = surfaceView
24+
cameraManager = camera
25+
context = activity
26+
}
27+
28+
override fun onSurfaceCreated(gl: GL10, config: EGLConfig) {
29+
// super part
30+
cameraFilter = CameraFilter()
31+
cameraManager!!.setSurfaceCreated(true)
32+
cameraManager!!.openCamera()
33+
// super part
34+
}
35+
36+
override fun onSurfaceChanged(gl: GL10, width: Int, height: Int) {
37+
// super part
38+
GLES20.glViewport(0, 0, width, height)
39+
cameraFilter!!.onSurfaceChanged(width, height)
40+
Log.i(TAG, "onSurfaceChanged: $width, $height")
41+
// super part
42+
}
43+
44+
override fun onDrawFrame(gl: GL10) {
45+
//super part
46+
if (mSurfaceTexture != null) {
47+
mSurfaceTexture!!.updateTexImage()
48+
mSurfaceTexture!!.getTransformMatrix(transformMatrix)
49+
}
50+
//super part
51+
}
52+
53+
fun getSurfaceTexture(): SurfaceTexture {
54+
mSurfaceTexture = SurfaceTexture(cameraFilter!!.oESTextureId)
55+
mSurfaceTexture!!.setOnFrameAvailableListener { cameraV2GLSurfaceView!!.requestRender() }
56+
return mSurfaceTexture!!
57+
}
58+
59+
companion object {
60+
const val TAG = "CameraV2BaseRenderer"
61+
}
62+
}
Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,28 @@
11
package com.tenginekit.tenginedemo.camera2;
22

33
import android.content.Context;
4-
import android.graphics.Bitmap;
54
import android.graphics.SurfaceTexture;
65
import android.opengl.GLSurfaceView;
76
import android.util.AttributeSet;
87

9-
import com.tenginekit.tenginedemo.Constant;
10-
118
public class CameraV2GLSurfaceView extends GLSurfaceView {
12-
public static final String TAG = Constant.LOG_TAG;
13-
private CameraV2Renderer mCameraV2Renderer;
9+
private CameraV2BaseRenderer mCameraV2Renderer;
1410

1511
public CameraV2GLSurfaceView(Context context, AttributeSet attrs) {
1612
super(context, attrs);
1713
}
1814

19-
public void init(CameraV2Manager camera, boolean isPreviewStarted, Context context) {
15+
public void init(CameraV2BaseRenderer renderer) {
2016
setEGLContextClientVersion(3);
21-
22-
mCameraV2Renderer = new CameraV2Renderer();
23-
mCameraV2Renderer.init(this, camera, isPreviewStarted, context);
24-
25-
setRenderer(mCameraV2Renderer);
17+
mCameraV2Renderer = renderer;
18+
setRenderer(renderer);
2619
}
2720

2821
public CameraV2GLSurfaceView(Context context) {
2922
this(context, null);
3023
}
3124

3225
public SurfaceTexture getSurfaceTexture() {
33-
return mCameraV2Renderer.getSurfaceTextrue();
34-
}
35-
36-
public void updateSegRes(Bitmap res) {
37-
mCameraV2Renderer.updateSegRes(res);
26+
return mCameraV2Renderer.getSurfaceTexture();
3827
}
3928
}

Android/source/app/src/main/java/com/tenginekit/tenginedemo/camera2/CameraV2Manager.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import android.app.Activity;
55
import android.content.Context;
6-
import android.graphics.Bitmap;
76
import android.graphics.ImageFormat;
87
import android.graphics.SurfaceTexture;
98
import android.hardware.camera2.CameraAccessException;
@@ -26,10 +25,6 @@
2625

2726
import com.tenginekit.engine.core.TengineKitSdk;
2827
import com.tenginekit.tenginedemo.Constant;
29-
30-
import org.jetbrains.annotations.Nullable;
31-
32-
import java.nio.ByteBuffer;
3328
import java.util.ArrayList;
3429
import java.util.Arrays;
3530
import java.util.Collections;
@@ -61,21 +56,17 @@ public void setSurfaceCreated(boolean surfaceCreated) {
6156
public boolean isSurfaceCreated = false;
6257
private FrameDataCallBack mFrameDataCallBack = null;
6358

64-
public void updateSegRes(@Nullable Bitmap res) {
65-
mSurfaceView.updateSegRes(res);
66-
}
67-
68-
6959
public interface FrameDataCallBack {
7060
void onFrameData(byte[] data, int width, int height);
7161
}
7262

7363

7464
public CameraV2Manager(Activity activity, boolean useFront, Size size,
75-
CameraV2GLSurfaceView surfaceView, FrameDataCallBack callBack) {
65+
CameraV2GLSurfaceView surfaceView, FrameDataCallBack callBack, CameraV2BaseRenderer renderer) {
7666
mActivity = activity;
7767
mSurfaceView = surfaceView;
78-
surfaceView.init(this, false, activity);
68+
renderer.setUp(surfaceView, this, activity);
69+
mSurfaceView.init(renderer);
7970
startCameraThread();
8071
setupCamera(useFront, size.getWidth(), size.getHeight());
8172
mFrameDataCallBack = callBack;

Android/source/app/src/main/java/com/tenginekit/tenginedemo/camera2/CameraV2Renderer.java

Lines changed: 0 additions & 96 deletions
This file was deleted.

Android/source/app/src/main/java/com/tenginekit/tenginedemo/encoder/CircleEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public synchronized void draw(final Canvas canvas) {
5353
@Override
5454
void processResults(Object results) {
5555
if (!drawCircle || results == null) return;
56-
if (results instanceof List) {
56+
if (results instanceof List && (((List<?>) results).get(0) instanceof List)) {
5757
trackedObjects = (List<List<TenginekitPoint>>) results;
5858
}
5959
}

0 commit comments

Comments
 (0)