2013-08-16 6 views
1

libwebp NDK 라이브러리를 사용하여 이미지를 웹으로 인코딩하는 예제를 제공 할 수 있습니까? w * 2 + 1 승, 내가 w에 이르기까지, 보폭에 대한 여러 값을 시도했습니다안드로이드 libwebp 인코딩

@Override 
    public void onPreviewFrame(byte[] data, Camera camera) { 
     int w = camera.getParameters().getPreviewSize().width; 
     int h = camera.getParameters().getPreviewSize().height; 
     try { 
      int stride = (w + 1) & ~1; 
      byte[] out = libwebp.WebPEncodeRGB(data, w, h, stride, 80f); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

:

나는 RGB_565 아래의 코드를 사용하여 같은 카메라에서 촬영 된 영상을 인코딩하기 위해 노력하고있어 , w * 3 및 w * 4 ... 후자의 경우 치명적인 예외가 발생합니다.

위의 코드는 내 생각이 더있다, 모든 옆으로 사진을 여러 번 복제하는 흑백 이미지, ...

+0

WebP를 사용하는 프로그램을 얻으려면 NDK를 사용해야합니까? – OKGimmeMoney

답변

0

WebP 형식이 RGB_565 스트림에서 인코딩을 지원하는 경우 내가 말할 수 없습니다를 생산하지 않습니다.

대안으로

, 당신은 여기에 주어진 답 같이 RGB_888로 변환 할 수 있습니다 : 다음 How does one convert 16-bit RGB565 to 24-bit RGB888?

그리고 보폭을 할 수있는 올바른 방법 단순히 width*bytesPerPixel, 또는 RGB_888의 경우는 width * 3 일 것 . RGBA_8888을 인코딩 할 때는 width * 4이됩니다.