me.dm7.barcodescanner.core.DisplayUtils Java Examples

The following examples show how to use me.dm7.barcodescanner.core.DisplayUtils. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: KaliumViewFinderView.java    From natrium-android-wallet with BSD 2-Clause "Simplified" License 5 votes vote down vote up
public synchronized void updateFramingRect() {
    Point viewResolution = new Point(this.getWidth(), this.getHeight());
    int orientation = DisplayUtils.getScreenOrientation(this.getContext());
    int width;
    int height;
    if (this.mSquareViewFinder) {
        if (orientation != 1) {
            height = (int) ((float) this.getHeight() * 0.625F);
            width = height;
        } else {
            width = (int) ((float) this.getWidth() * 0.625F);
            height = width;
        }
    } else if (orientation != 1) {
        height = (int) ((float) this.getHeight() * 0.625F);
        width = (int) (1.4F * (float) height);
    } else {
        width = (int) ((float) this.getWidth() * 0.75F);
        height = (int) (0.75F * (float) width);
    }

    if (width > this.getWidth()) {
        width = this.getWidth() - 50;
    }

    if (height > this.getHeight()) {
        height = this.getHeight() - 50;
    }

    int leftOffset = (viewResolution.x - width) / 2;
    int topOffset = (viewResolution.y - height) / 2;
    this.mFramingRectF = new RectF(leftOffset, topOffset, leftOffset + width, topOffset + height);
}
 
Example #2
Source File: NanoViewFinderView.java    From nano-wallet-android with BSD 2-Clause "Simplified" License 5 votes vote down vote up
public synchronized void updateFramingRect() {
    Point viewResolution = new Point(this.getWidth(), this.getHeight());
    int orientation = DisplayUtils.getScreenOrientation(this.getContext());
    int width;
    int height;
    if (this.mSquareViewFinder) {
        if (orientation != 1) {
            height = (int) ((float) this.getHeight() * 0.625F);
            width = height;
        } else {
            width = (int) ((float) this.getWidth() * 0.625F);
            height = width;
        }
    } else if (orientation != 1) {
        height = (int) ((float) this.getHeight() * 0.625F);
        width = (int) (1.4F * (float) height);
    } else {
        width = (int) ((float) this.getWidth() * 0.75F);
        height = (int) (0.75F * (float) width);
    }

    if (width > this.getWidth()) {
        width = this.getWidth() - 50;
    }

    if (height > this.getHeight()) {
        height = this.getHeight() - 50;
    }

    int leftOffset = (viewResolution.x - width) / 2;
    int topOffset = (viewResolution.y - height) / 2;
    this.mFramingRectF = new RectF(leftOffset, topOffset, leftOffset + width, topOffset + height);
}
 
Example #3
Source File: RNCameraComponentView.java    From react-native-camera-android with MIT License 4 votes vote down vote up
public void onPreviewFrame(byte[] data, Camera camera) {
    Camera.Parameters parameters = camera.getParameters();
    Camera.Size size = parameters.getPreviewSize();
    int width = size.width;
    int height = size.height;
    if(DisplayUtils.getScreenOrientation(this.getContext()) == 1) {
        byte[] rawResult = new byte[data.length];

        int source;
        for(source = 0; source < height; ++source) {
            for(int bitmap = 0; bitmap < width; ++bitmap) {
                rawResult[bitmap * height + height - source - 1] = data[bitmap + source * width];
            }
        }

        source = width;
        width = height;
        height = source;
        data = rawResult;
    }

    Result var20 = null;
    PlanarYUVLuminanceSource var21 = this.buildLuminanceSource(data, width, height);
    if(var21 != null) {
        BinaryBitmap var22 = new BinaryBitmap(new HybridBinarizer(var21));

        try {
            var20 = this.mMultiFormatReader.decodeWithState(var22);
        } catch (ReaderException var16) {
            ;
        } catch (NullPointerException var17) {
            ;
        } catch (ArrayIndexOutOfBoundsException var18) {
            ;
        } finally {
            this.mMultiFormatReader.reset();
        }
    }

    if(var20 != null) {
        this.stopCamera();
        if(this.mResultHandler != null) {
            this.mResultHandler.handleResult(var20);
        }
    } else {
        camera.setOneShotPreviewCallback(this);
    }

}
 
Example #4
Source File: ZXingScannerView.java    From smartcoins-wallet with MIT License 4 votes vote down vote up
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
    if(mResultHandler == null) {
        return;
    }
    
    try {
        Camera.Parameters parameters = camera.getParameters();
        Camera.Size size = parameters.getPreviewSize();
        int width = size.width;
        int height = size.height;

        if (DisplayUtils.getScreenOrientation(getContext()) == Configuration.ORIENTATION_PORTRAIT) {
            byte[] rotatedData = new byte[data.length];
            for (int y = 0; y < height; y++) {
                for (int x = 0; x < width; x++)
                    rotatedData[x * height + height - y - 1] = data[x + y * width];
            }
            int tmp = width;
            width = height;
            height = tmp;
            data = rotatedData;
        }

        Result rawResult = null;
        PlanarYUVLuminanceSource source = buildLuminanceSource(data, width, height);

        if (source != null) {
            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
            try {
                rawResult = mMultiFormatReader.decodeWithState(bitmap);
            } catch (ReaderException re) {
                // continue
            } catch (NullPointerException npe) {
                // This is terrible
            } catch (ArrayIndexOutOfBoundsException aoe) {

            } finally {
                mMultiFormatReader.reset();
            }
        }

        final Result finalRawResult = rawResult;

        if (finalRawResult != null) {
            Handler handler = new Handler(Looper.getMainLooper());
            handler.post(new Runnable() {
                @Override
                public void run() {
                    // Stopping the preview can take a little long.
                    // So we want to set result handler to null to discard subsequent calls to
                    // onPreviewFrame.
                    ResultHandler tmpResultHandler = mResultHandler;
                    mResultHandler = null;

                    stopCameraPreview();
                    if (tmpResultHandler != null) {
                        tmpResultHandler.handleResult(finalRawResult);
                    }
                }
            });
        } else {
            camera.setOneShotPreviewCallback(this);
        }
    } catch(RuntimeException e) {
        // TODO: Terrible hack. It is possible that this method is invoked after camera is released.
        Log.e(TAG, e.toString(), e);
    }
}