Unverified Commit 68c3893b authored by 少言's avatar 少言 Committed by GitHub

Merge pull request #91 from NikiLee2016/branch-base64

Branch base64
parents 49a9ddd0 031d0910
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.reactlibrary"> package="com.reactlibrary">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<application> <application>
</application> </application>
......
...@@ -205,76 +205,83 @@ public class RNSyanImagePickerModule extends ReactContextBaseJavaModule { ...@@ -205,76 +205,83 @@ public class RNSyanImagePickerModule extends ReactContextBaseJavaModule {
private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener() { private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener() {
@Override @Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) { public void onActivityResult(Activity activity, int requestCode, int resultCode, final Intent data) {
switch (requestCode) { if(requestCode == PictureConfig.CHOOSE_REQUEST){
case PictureConfig.CHOOSE_REQUEST: new Thread(new Runnable() {
List<LocalMedia> tmpSelectList = PictureSelector.obtainMultipleResult(data); @Override
boolean isRecordSelected = cameraOptions.getBoolean("isRecordSelected"); public void run() {
if (!tmpSelectList.isEmpty() && isRecordSelected) { onGetResult(data);
selectList = tmpSelectList;
}
WritableArray imageList = new WritableNativeArray();
boolean enableBase64 = cameraOptions.getBoolean("enableBase64");
for (LocalMedia media : tmpSelectList) {
WritableMap aImage = new WritableNativeMap();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
if (!media.isCompressed()) {
BitmapFactory.decodeFile(media.getPath(), options);
aImage.putDouble("width", options.outWidth);
aImage.putDouble("height", options.outHeight);
aImage.putString("type", "image");
aImage.putString("uri", "file://" + media.getPath());
//decode to bitmap
Bitmap bitmap = BitmapFactory.decodeFile(media.getPath());
aImage.putInt("size", bitmap.getByteCount());
//base64 encode
if (enableBase64) {
String encodeString = getBase64EncodeString(bitmap);
aImage.putString("base64", encodeString);
}
} else {
// 压缩过,取 media.getCompressPath();
BitmapFactory.decodeFile(media.getCompressPath(), options);
aImage.putDouble("width", options.outWidth);
aImage.putDouble("height", options.outHeight);
aImage.putString("type", "image");
aImage.putString("uri", "file://" + media.getCompressPath());
//decode to bitmap
Bitmap bitmap = BitmapFactory.decodeFile(media.getCompressPath());
aImage.putInt("size", bitmap.getByteCount());
//base64 encode
if (enableBase64) {
String encodeString = getBase64EncodeString(bitmap);
aImage.putString("base64", encodeString);
}
}
if (media.isCut()) {
aImage.putString("original_uri", "file://" + media.getCutPath());
} else {
aImage.putString("original_uri", "file://" + media.getPath());
}
imageList.pushMap(aImage);
}
if (tmpSelectList.isEmpty()) {
invokeError();
} else {
invokeSuccessWithResult(imageList);
} }
}).run();
} }
} }
}; };
private void onGetResult(Intent data){
List<LocalMedia> tmpSelectList = PictureSelector.obtainMultipleResult(data);
boolean isRecordSelected = cameraOptions.getBoolean("isRecordSelected");
if (!tmpSelectList.isEmpty() && isRecordSelected) {
selectList = tmpSelectList;
}
WritableArray imageList = new WritableNativeArray();
boolean enableBase64 = cameraOptions.getBoolean("enableBase64");
for (LocalMedia media : tmpSelectList) {
WritableMap aImage = new WritableNativeMap();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
if (!media.isCompressed()) {
BitmapFactory.decodeFile(media.getPath(), options);
aImage.putDouble("width", options.outWidth);
aImage.putDouble("height", options.outHeight);
aImage.putString("type", "image");
aImage.putString("uri", "file://" + media.getPath());
//decode to bitmap
Bitmap bitmap = BitmapFactory.decodeFile(media.getPath());
aImage.putInt("size", bitmap.getByteCount());
//base64 encode
if (enableBase64) {
String encodeString = getBase64EncodeString(bitmap);
aImage.putString("base64", encodeString);
}
} else {
// 压缩过,取 media.getCompressPath();
BitmapFactory.decodeFile(media.getCompressPath(), options);
aImage.putDouble("width", options.outWidth);
aImage.putDouble("height", options.outHeight);
aImage.putString("type", "image");
aImage.putString("uri", "file://" + media.getCompressPath());
//decode to bitmap
Bitmap bitmap = BitmapFactory.decodeFile(media.getCompressPath());
aImage.putInt("size", bitmap.getByteCount());
//base64 encode
if (enableBase64) {
String encodeString = getBase64EncodeString(bitmap);
aImage.putString("base64", encodeString);
}
}
if (media.isCut()) {
aImage.putString("original_uri", "file://" + media.getCutPath());
} else {
aImage.putString("original_uri", "file://" + media.getPath());
}
imageList.pushMap(aImage);
}
if (tmpSelectList.isEmpty()) {
invokeError();
} else {
invokeSuccessWithResult(imageList);
}
}
/** /**
* 获取图片base64编码字符串 * 获取图片base64编码字符串
* @param bitmap Bitmap对象 * @param bitmap Bitmap对象
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment