Refactor PlanarYUVLuminanceSource into core/

git-svn-id: https://zxing.googlecode.com/svn/trunk@2362 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
srowen 2012-07-31 15:06:23 +00:00
parent a7c40abe8f
commit 53ace36930
3 changed files with 17 additions and 12 deletions

View file

@ -16,9 +16,12 @@
package com.google.zxing.client.android; package com.google.zxing.client.android;
import android.graphics.Bitmap;
import com.google.zxing.BinaryBitmap; import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType; import com.google.zxing.DecodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader; import com.google.zxing.MultiFormatReader;
import com.google.zxing.PlanarYUVLuminanceSource;
import com.google.zxing.ReaderException; import com.google.zxing.ReaderException;
import com.google.zxing.Result; import com.google.zxing.Result;
import com.google.zxing.common.HybridBinarizer; import com.google.zxing.common.HybridBinarizer;
@ -92,7 +95,8 @@ final class DecodeHandler extends Handler {
if (handler != null) { if (handler != null) {
Message message = Message.obtain(handler, R.id.decode_succeeded, rawResult); Message message = Message.obtain(handler, R.id.decode_succeeded, rawResult);
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putParcelable(DecodeThread.BARCODE_BITMAP, source.renderCroppedGreyscaleBitmap()); Bitmap grayscaleBitmap = toBitmap(source, source.renderCroppedGreyscaleBitmap());
bundle.putParcelable(DecodeThread.BARCODE_BITMAP, grayscaleBitmap);
message.setData(bundle); message.setData(bundle);
message.sendToTarget(); message.sendToTarget();
} }
@ -104,4 +108,12 @@ final class DecodeHandler extends Handler {
} }
} }
private static Bitmap toBitmap(LuminanceSource source, int[] pixels) {
int width = source.getWidth();
int height = source.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
}
} }

View file

@ -23,7 +23,7 @@ import android.hardware.Camera;
import android.os.Handler; import android.os.Handler;
import android.util.Log; import android.util.Log;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
import com.google.zxing.client.android.PlanarYUVLuminanceSource; import com.google.zxing.PlanarYUVLuminanceSource;
import com.google.zxing.client.android.camera.open.OpenCameraManager; import com.google.zxing.client.android.camera.open.OpenCameraManager;
import java.io.IOException; import java.io.IOException;

View file

@ -14,11 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package com.google.zxing.client.android; package com.google.zxing;
import com.google.zxing.LuminanceSource;
import android.graphics.Bitmap;
/** /**
* This object extends LuminanceSource around an array of YUV data returned from the camera driver, * This object extends LuminanceSource around an array of YUV data returned from the camera driver,
@ -124,7 +120,7 @@ public final class PlanarYUVLuminanceSource extends LuminanceSource {
false); false);
} }
public Bitmap renderCroppedGreyscaleBitmap() { public int[] renderCroppedGreyscaleBitmap() {
int width = getWidth(); int width = getWidth();
int height = getHeight(); int height = getHeight();
int[] pixels = new int[width * height]; int[] pixels = new int[width * height];
@ -139,10 +135,7 @@ public final class PlanarYUVLuminanceSource extends LuminanceSource {
} }
inputOffset += dataWidth; inputOffset += dataWidth;
} }
return pixels;
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
} }
private void reverseHorizontal(int width, int height) { private void reverseHorizontal(int width, int height) {