Note that there are some explanatory texts on larger screens.

plurals
  1. POBitmap rendering in Android
    primarykey
    data
    text
    <p>I need help regarding rendering of Bitmaps and displaying them as a video in Android. Does someone know how to do it?</p> <p>I am also attaching the code with this for your understanding..</p> <pre><code>import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.graphics.Bitmap; import android.hardware.Camera; import android.os.Bundle; public class Read extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); File file = new File("C:/Users/amrit.pati/Desktop/downloads/H324mVideoEncInput.yuv"); try { onPreviewFrame(getBytesFromFile(file)); } catch (IOException e) { e.printStackTrace(); } } public static byte[] getBytesFromFile(File file) throws IOException { InputStream is = new FileInputStream(file); long length = file.length(); if (length &gt; Integer.MAX_VALUE) { } byte[] bytes = new byte[(int)length]; int offset = 0; int numRead = 0; while (offset &lt; bytes.length &amp;&amp; (numRead=is.read(bytes, offset, bytes.length-offset)) &gt;= 0) { offset += numRead; } if (offset &lt; bytes.length) { throw new IOException("Could not completely read file "+file.getName()); } is.close(); return bytes; } public void onPreviewFrame(byte[] data) { int width = 480; int height = 360; final int[] rgb = decodeYUV420SP(data, width, height); Bitmap bmp = Bitmap.createBitmap(rgb, width, height,Bitmap.Config.ARGB_8888); } public int[] decodeYUV420SP( byte[] yuv420sp, int width, int height) { final int frameSize = width * height; int rgb[]=new int[width*height]; for (int j = 0, yp = 0; j &lt; height; j++) { int uvp = frameSize + (j &gt;&gt; 1) * width, u = 0, v = 0; for (int i = 0; i &lt; width; i++, yp++) { int y = (0xff &amp; ((int) yuv420sp[yp])) - 16; if (y &lt; 0) y = 0; if ((i &amp; 1) == 0) { v = (0xff &amp; yuv420sp[uvp++]) - 128; u = (0xff &amp; yuv420sp[uvp++]) - 128; } int y1192 = 1192 * y; int r = (y1192 + 1634 * v); int g = (y1192 - 833 * v - 400 * u); int b = (y1192 + 2066 * u); if (r &lt; 0) r = 0; else if (r &gt; 262143) r = 262143; if (g &lt; 0) g = 0; else if (g &gt; 262143) g = 262143; if (b &lt; 0) b = 0; else if (b &gt; 262143) b = 262143; rgb[yp] = 0xff000000 | ((r &lt;&lt; 6) &amp; 0xff0000) | ((g &gt;&gt; 2) &amp; 0xff00) | ((b &gt;&gt; 10) &amp; 0xff); } } return rgb; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload