On 1.5 and 1.6, there is no way to know supported preview sizes so apps should not call setPreviewSize. Apps should call getPreviewSize to know the current preview size. On 2.0, Apps should call getSupportedPreviewSizes before setPreviewSize.
It's the same for setPictureFormat. On 1.5 and 1.6, apps should only call getPictureFormat. On 2.0 apps shoudl call getSupportedPictureFormat before setPictureFormat. I think what you want is setPreviewFormat, not setPictureFormat. G1 and MyTouch3G only supports YCbCr_420_SP (NV21) preview format and jpeg picture format on 1.5 and 1.6. PS: http://developer.android.com/reference/android/hardware/Camera.Parameters.html#getSupportedPreviewSizes() http://www.fourcc.org/yuv.php#NV21 On Dec 2, 1:22 am, Jarcikon <jarci...@gmail.com> wrote: > Arnouf, > > After reading a little more, I realized what may be causing your > original problem, if you still intend to do it that way. The > setPreviewSize method does not seem to work, at least on the G1 and > MyTouch3G. So in your decodeYUV function you are assuming the data > returned will be 50*50 pixels. I would check the data variable in > onPreviewFrame and I think you will find it is not 50 x 50. You can > also do a getPreviewSize after setting the preview size and see what > it returns. > > Mike > > On Nov 18, 5:03 am, arnouf <arnaud.far...@gmail.com> wrote: > > > > > hi all, > > > How can I convert the camera preview to a bitmap without use > > Takepicture ? The goal is to analyze the colors present inside the > > current preview. > > > When I try to create bitmap (50x50 pixels of the current view) the > > result view is green with black lines. Apparently the preview uses the > > YUV color and I have to translate it in RGB to create my bitmap. I'm > > using a method found decodeYUV on this > > group:http://groups.google.fr/group/android-developers/browse_thread/thread... > > > Below my code and thanks by advance for yourhelp > > > public void surfaceChanged(SurfaceHolder holder, int format, int > > width, > > int height) { > > Camera.Parameters parameters = mCamera.getParameters(); > > parameters.setPictureFormat(PixelFormat.YCbCr_422_SP); > > parameters.setPreviewSize(50, 50); > > mCamera.setParameters(parameters); > > mCamera.startPreview(); > > > } > > > Camera.PreviewCallback mPreviewCallback = new Camera.PreviewCallback() > > { > > public void onPreviewFrame(byte[] data, Camera camera) { > > int[] pixels = new int[50 * 50]; > > decodeYUV(pixels, data, 50, 50); > > Bitmap bfInit = Bitmap.createBitmap(pixels, 50, 50, > > Bitmap.Config.ARGB_8888); > > > if (bfInit != null) { > > imgfinal.setImageBitmap(bfInit); > > > }} -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en