마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

비디오 영상 특정 영역 CROP 하는 방법 질문

0 추천
비디오 재생을을 구현하였습니다. TextureView나 SurfaceView를 이용해서 영상을 연결 시켜서 재생 중이구요.

여기서 특정 영역을 선택하는 좌표 값 x, y, w, h 값은 전부 가져오고 있습니다.

근데 실제로 textureview나 surfaceview에서 matrix를 이용해 scale을 줘봐도 위치값이 맞질 않네요.

뭐가 문제인지 잘 모르겠네요. 혹시 아시는 분 계신가요? 위치 값 구하는 아래 소스입니다.

 public void onCrop(int nLeft, int nTop, int nRight, int nBottom, int nCenterX, int nCenterY, int nCropWidth, int nCropHight)
    {

        float fScaleX = (float)m_TextureView.getWidth()  / (float)nCropWidth;
        float fScaleY = (float)m_TextureView.getHeight() / (float)nCropHight;

        Matrix matrix = m_TextureView.getMatrix();
        matrix.setScale(fScaleX, fScaleY, nCenterX, nCenterY);
        m_TextureView.setTransform(matrix);

        if (nCropWidth < nCropHight)
        {
            m_TextureView.setLayoutParams(new FrameLayout.LayoutParams(m_nBottom - m_nTop, m_nRight - m_nLeft, Gravity.CENTER));
        }
        else if(nCropHight < nCropWidth)
        {
            m_TextureView.setLayoutParams(new FrameLayout.LayoutParams(m_nRight - m_nLeft, m_nBottom - m_nTop, Gravity.CENTER));
        }

}
yyms (470 포인트) 님이 2018년 11월 17일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...