use of java.nio.IntBuffer in project android-gpuimage-ndkbuild-sample by mugku.
the class PixelBuffer method convertToBitmap.
private void convertToBitmap() {
int[] iat = new int[mWidth * mHeight];
IntBuffer ib = IntBuffer.allocate(mWidth * mHeight);
mGL.glReadPixels(0, 0, mWidth, mHeight, GL_RGBA, GL_UNSIGNED_BYTE, ib);
int[] ia = ib.array();
// image.
for (int i = 0; i < mHeight; i++) {
for (int j = 0; j < mWidth; j++) {
iat[(mHeight - i - 1) * mWidth + j] = ia[i * mWidth + j];
}
}
mBitmap = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.ARGB_8888);
mBitmap.copyPixelsFromBuffer(IntBuffer.wrap(iat));
}
use of java.nio.IntBuffer in project AndEngine by nicolasgramlich.
the class RenderTexture method getPixelsARGB_8888.
public int[] getPixelsARGB_8888(final GLState pGLState, final int pX, final int pY, final int pWidth, final int pHeight) {
final int[] pixelsRGBA_8888 = new int[pWidth * pHeight];
final IntBuffer glPixelBuffer = IntBuffer.wrap(pixelsRGBA_8888);
glPixelBuffer.position(0);
this.begin(pGLState);
GLES20.glReadPixels(pX, pY, pWidth, pHeight, this.mPixelFormat.getGLFormat(), this.mPixelFormat.getGLType(), glPixelBuffer);
this.end(pGLState);
return GLHelper.convertRGBA_8888toARGB_8888(pixelsRGBA_8888);
}
use of java.nio.IntBuffer in project UltimateAndroid by cymcsg.
the class BitmapOutput method drawFrame.
@Override
public void drawFrame() {
if (frameBuffer == null) {
if (getWidth() != 0 && getHeight() != 0) {
initFBO();
} else {
return;
}
}
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffer[0]);
super.drawFrame();
int[] pixels = new int[getWidth() * getHeight()];
IntBuffer intBuffer = IntBuffer.wrap(pixels);
intBuffer.position(0);
GLES20.glReadPixels(0, 0, getWidth(), getHeight(), GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, intBuffer);
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
for (int i = 0; i < pixels.length; i++) {
//swap red and blue to translate back to bitmap rgb style
pixels[i] = (pixels[i] & (0xFF00FF00)) | ((pixels[i] >> 16) & 0x000000FF) | ((pixels[i] << 16) & 0x00FF0000);
}
Bitmap image = Bitmap.createBitmap(pixels, getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
callback.bitmapCreated(image);
}
use of java.nio.IntBuffer in project UltimateAndroid by cymcsg.
the class JPGFileEndpoint method drawFrame.
@Override
public void drawFrame() {
if (frameBuffer == null) {
if (getWidth() != 0 && getHeight() != 0) {
initFBO();
} else {
return;
}
}
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffer[0]);
super.drawFrame();
int[] pixels = new int[getWidth() * getHeight()];
IntBuffer intBuffer = IntBuffer.wrap(pixels);
intBuffer.position(0);
GLES20.glReadPixels(0, 0, getWidth(), getHeight(), GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, intBuffer);
GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
for (int i = 0; i < pixels.length; i++) {
//swap red and blue to translate back to bitmap rgb style
pixels[i] = (pixels[i] & (0xFF00FF00)) | ((pixels[i] >> 16) & 0x000000FF) | ((pixels[i] << 16) & 0x00FF0000);
}
Bitmap image = Bitmap.createBitmap(pixels, getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
String filePathName;
if (increment) {
filePathName = filePath + curNumber + ".jpg";
curNumber++;
} else {
filePathName = filePath + ".jpg";
}
try {
OutputStream out = new FileOutputStream(new File(filePathName));
image.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
if (storeToMedia) {
String[] name = filePath.split("/");
MediaStore.Images.Media.insertImage(context.getContentResolver(), filePathName, name[name.length - 1], "");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
use of java.nio.IntBuffer in project druid by druid-io.
the class IndexMergerTest method testDictIdSeeker.
@Test
public void testDictIdSeeker() throws Exception {
IntBuffer dimConversions = ByteBuffer.allocateDirect(3 * Ints.BYTES).asIntBuffer();
dimConversions.put(0);
dimConversions.put(2);
dimConversions.put(4);
IndexMerger.IndexSeeker dictIdSeeker = new IndexMerger.IndexSeekerWithConversion((IntBuffer) dimConversions.asReadOnlyBuffer().rewind());
Assert.assertEquals(0, dictIdSeeker.seek(0));
Assert.assertEquals(-1, dictIdSeeker.seek(1));
Assert.assertEquals(1, dictIdSeeker.seek(2));
try {
dictIdSeeker.seek(5);
Assert.fail("Only support access in order");
} catch (ISE ise) {
Assert.assertTrue("Only support access in order", true);
}
Assert.assertEquals(-1, dictIdSeeker.seek(3));
Assert.assertEquals(2, dictIdSeeker.seek(4));
Assert.assertEquals(-1, dictIdSeeker.seek(5));
}
Aggregations