cordova-android/src/com/phonegap/demo/CameraLauncher.java

48 lines
1.1 KiB
Java
Raw Normal View History

2009-07-18 05:06:49 +08:00
package com.phonegap.demo;
import java.io.ByteArrayOutputStream;
2009-07-18 05:06:49 +08:00
import android.graphics.BitmapFactory;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.webkit.WebView;
import org.apache.commons.codec.binary.Base64;
2009-07-18 05:06:49 +08:00
public class CameraLauncher {
2009-07-18 05:06:49 +08:00
private WebView mAppView;
private DroidGap mGap;
int quality;
2009-07-18 05:06:49 +08:00
CameraLauncher(WebView view, DroidGap gap)
2009-07-18 05:06:49 +08:00
{
mAppView = view;
mGap = gap;
}
public void takePicture(int quality)
{
mGap.startCamera();
}
/* Return Base64 Encoded String to Javascript */
public void processPicture( byte[] data )
{
ByteArrayOutputStream jpeg_data = new ByteArrayOutputStream();
Bitmap myMap = BitmapFactory.decodeByteArray(data, 0, data.length);
if (myMap.compress(CompressFormat.JPEG, quality, jpeg_data))
{
byte[] code = jpeg_data.toByteArray();
byte[] output = Base64.encodeBase64(code);
String js_out = output.toString();
mAppView.loadUrl("javascript:Camera.win('" + js_out + "');");
}
else
{
mAppView.loadUrl("javascript:Camera.fail();");
}
2009-07-18 05:06:49 +08:00
}
}