14cead8034aab0e20e402baee87cbe9129db00192Stephen Hinespackage com.android.rs.refocus; 2de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 3de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.content.Context; 4de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.graphics.Bitmap; 5de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.graphics.BitmapFactory; 6de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.net.Uri; 7de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 8de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 9de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.os.AsyncTask; 10de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.support.v8.renderscript.Allocation; 11de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport android.support.v8.renderscript.RenderScript; 12de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 13de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport java.io.IOException; 14de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangimport java.io.InputStream; 15de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 16de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang/** 17de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang * Created by hoford on 5/15/15. 18de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang */ 19de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wangpublic class DepthImage { 20de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final String mFormat; 21de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mFar; 22de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mNear; 23de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final Bitmap mDepthBitmap; 24de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mBlurAtInfinity; 25de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mFocalDistance; 26de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mDepthOfFiled; 27de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mFocalPointX; 28de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final double mFocalPointY; 29de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang private final DepthTransform mDepthTransform; 30de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public DepthImage(Context context, Uri data) throws IOException { 31de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang InputStream input = context.getContentResolver().openInputStream(data); 32de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang XmpDepthDecode decode = new XmpDepthDecode(input); 33de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mFormat = decode.getFormat(); 34de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mFar = decode.getFar(); 35de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mNear = decode.getNear(); 36de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mDepthBitmap = decode.getDepthBitmap(); 37de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mBlurAtInfinity = decode.getBlurAtInfinity(); 38de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mFocalDistance = decode.getFocalDistance(); 39de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mDepthOfFiled = decode.getDepthOfField(); 40de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mFocalPointX = decode.getFocalPointX(); 41de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mFocalPointY = decode.getFocalPointY(); 42de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang input = context.getContentResolver().openInputStream(data); 43de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang mDepthTransform = decode.getDepthTransform(); 44de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 45de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 46de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public Bitmap getDepthBitmap() { 47de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mDepthBitmap; 48de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 49de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 50de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public DepthTransform getDepthTransform() { return mDepthTransform; } 51de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 52de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public String getFormat() { 53de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mFormat; 54de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 55de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 56de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getFar() { 57de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mFar; 58de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 59de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 60de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getNear() { 61de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mNear; 62de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 63de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 64de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getBlurAtInfinity() { 65de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mBlurAtInfinity; 66de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 67de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 68de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getFocalDistance() { 69de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mFocalDistance; 70de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 71de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 72de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getDepthOfField() {return mDepthOfFiled; } 73de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 74de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getFocalPointX() { 75de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mFocalPointX; 76de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 77de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 78de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang public double getFocalPointY() { 79de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang return mFocalPointY; 80de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang } 81de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang} 82de2f182fdb522689e05280e449a39ec2c1b53e1fCindy Wang 83