Java 类com.facebook.imagepipeline.image.CloseableBitmap 实例源码

项目:GitHub    文件:BaseBitmapDataSubscriber.java   
@Override
public void onNewResultImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
  if (!dataSource.isFinished()) {
    return;
  }

  CloseableReference<CloseableImage> closeableImageRef = dataSource.getResult();
  Bitmap bitmap = null;
  if (closeableImageRef != null &&
      closeableImageRef.get() instanceof CloseableBitmap) {
    bitmap = ((CloseableBitmap) closeableImageRef.get()).getUnderlyingBitmap();
  }

  try {
    onNewResultImpl(bitmap);
  } finally {
    CloseableReference.closeSafely(closeableImageRef);
  }
}
项目:android-upload-service    文件:UploadJob.java   
@Override
public void onRun() throws Throwable {
  Log.i(TAG, "RUNNING UploadJob for Item["+itemId+"] Uri["+uri.toString()+"]");

  if(MediaUtils.isPhoto(UriUtils.extractMimeType(weakReference.get(), uri))) {
    DataSource<CloseableReference<CloseableImage>> dataSource = Fresco.getImagePipeline().fetchDecodedImage(ImageRequest.fromUri(uri), weakReference.get());
    Throwable failureCause = dataSource.getFailureCause();
    if (failureCause != null) {
      throw failureCause;
    }

    CloseableReference<CloseableImage> result = dataSource.getResult();
    if (result != null) {
      CloseableImage closeableImage = result.get();
      if (closeableImage instanceof CloseableBitmap) {
        Bitmap bitmap = ((CloseableBitmap) closeableImage).getUnderlyingBitmap();
        uploadFile(createImageTempFile(bitmap));
      }
    }
  }else{
    uploadFile(new File(uri.getPath()));
  }
}
项目:fresco    文件:BaseBitmapDataSubscriber.java   
@Override
public void onNewResultImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
  if (!dataSource.isFinished()) {
    return;
  }

  CloseableReference<CloseableImage> closeableImageRef = dataSource.getResult();
  Bitmap bitmap = null;
  if (closeableImageRef != null &&
      closeableImageRef.get() instanceof CloseableBitmap) {
    bitmap = ((CloseableBitmap) closeableImageRef.get()).getUnderlyingBitmap();
  }

  try {
    onNewResultImpl(bitmap);
  } finally {
    CloseableReference.closeSafely(closeableImageRef);
  }
}
项目:GitHub    文件:BaseFrescoStethoPlugin.java   
private void storeEntries(
    List<CountingMemoryCacheInspector.DumpInfoEntry<CacheKey, CloseableImage>>
        entries,
    int i,
    PrintStream writer,
    File directory) throws IOException {
  String filename;
  for (CountingMemoryCacheInspector.DumpInfoEntry<CacheKey, CloseableImage>
      entry : entries) {
      CloseableImage closeableImage = entry.value.get();
      if (closeableImage instanceof CloseableBitmap) {
        CloseableBitmap closeableBitmap = (CloseableBitmap) closeableImage;
        filename = "tmp" + i + ".png";
        writer.println(formatStrLocaleSafe(
            "Storing image %d as %s. Key: %s",
            i,
            filename,
            entry.key));
        storeImage(
            closeableBitmap.getUnderlyingBitmap(),
            new File(directory, filename),
            Bitmap.CompressFormat.PNG,
            100);
      } else {
        writer.println(formatStrLocaleSafe(
            "Image %d has unrecognized type %s. Key: %s",
            i,
            closeableImage,
            entry.key));
      }
    i++;
    }
}
项目:RNLearn_Project1    文件:PipelineRequestHelper.java   
/**
 * Returns an unsafe bitmap reference. Do not assign the result of this method to anything other
 * than a local variable, or it will no longer work with the reference count goes to zero.
 */
/* package */ @Nullable Bitmap getBitmap() {
  if (mImageRef == null) {
    return null;
  }

  CloseableImage closeableImage = mImageRef.get();
  if (!(closeableImage instanceof CloseableBitmap)) {
    mImageRef.close();
    mImageRef = null;
    return null;
  }

  return ((CloseableBitmap) closeableImage).getUnderlyingBitmap();
}
项目:RNLearn_Project1    文件:PipelineRequestHelper.java   
/**
 * Returns an unsafe bitmap reference. Do not assign the result of this method to anything other
 * than a local variable, or it will no longer work with the reference count goes to zero.
 */
/* package */ @Nullable Bitmap getBitmap() {
  if (mImageRef == null) {
    return null;
  }

  CloseableImage closeableImage = mImageRef.get();
  if (!(closeableImage instanceof CloseableBitmap)) {
    mImageRef.close();
    mImageRef = null;
    return null;
  }

  return ((CloseableBitmap) closeableImage).getUnderlyingBitmap();
}
项目:fresco    文件:BaseFrescoStethoPlugin.java   
private void storeEntries(
    List<CountingMemoryCacheInspector.DumpInfoEntry<CacheKey, CloseableImage>>
        entries,
    int i,
    PrintStream writer,
    File directory) throws IOException {
  String filename;
  for (CountingMemoryCacheInspector.DumpInfoEntry<CacheKey, CloseableImage>
      entry : entries) {
      CloseableImage closeableImage = entry.value.get();
      if (closeableImage instanceof CloseableBitmap) {
        CloseableBitmap closeableBitmap = (CloseableBitmap) closeableImage;
        filename = "tmp" + i + ".png";
        writer.println(formatStrLocaleSafe(
            "Storing image %d as %s. Key: %s",
            i,
            filename,
            entry.key));
        storeImage(
            closeableBitmap.getUnderlyingBitmap(),
            new File(directory, filename),
            Bitmap.CompressFormat.PNG,
            100);
      } else {
        writer.println(formatStrLocaleSafe(
            "Image %d has unrecognized type %s. Key: %s",
            i,
            closeableImage,
            entry.key));
      }
    i++;
    }
}
项目:S1-Go    文件:ImageLoader.java   
@Override
public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {
    super.onFinalImageSet(id, imageInfo, animatable);
    if (mLoadingListener != null && mImageView != null) {
        ImageView imageView = mImageView.get();
        if (imageInfo != null) {
            if (imageInfo instanceof CloseableBitmap) {
                mLoadingListener.onLoadingComplete(mImageUri, imageView, ((CloseableBitmap) imageInfo).getUnderlyingBitmap());
                return;
            }
        }
        mLoadingListener.onLoadingComplete(mImageUri, imageView, null);
    }
}
项目:GitHub    文件:FrescoFrameCache.java   
private static int getBitmapSizeBytes(@Nullable CloseableImage image) {
  if (!(image instanceof CloseableBitmap)) {
    return 0;
  }
  return BitmapUtil.getSizeInBytes(((CloseableBitmap) image).getUnderlyingBitmap());
}
项目:CustomListView    文件:BaseBitmapDataSubscriber.java   
@Override
    public void onNewResultImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
        if (!dataSource.isFinished()) {
            return;
        }

        CloseableReference<CloseableImage> closeableImageRef = dataSource.getResult();
        Bitmap bitmap = null;
        if (closeableImageRef != null &&
                closeableImageRef.get() instanceof CloseableBitmap) {
            bitmap = ((CloseableBitmap) closeableImageRef.get()).getUnderlyingBitmap();
        }


        if(bitmap!=null ){
            if(bitmap.isRecycled()){
                onFailure(dataSource);
            }else {
                onNewResultImpl(bitmap,dataSource);
            }
            return;
        }

//        //如果bitmap为空
//        File cacheFile  = ImageLoader.getActualLoader().getFileFromDiskCache(finalUrl);
//        if(cacheFile ==null){
//            onFailure(dataSource);
//            return;
//        }
//        //还要判断文件是不是gif格式的
//        if (!"gif".equalsIgnoreCase(MyUtil.getRealType(cacheFile))){
//            onFailure(dataSource);
//            return;
//        }
//        Bitmap bitmapGif = GifUtils.getBitmapFromGifFile(cacheFile);//拿到gif第一帧的bitmap
//        if(width>0 && height >0) {
//            bitmapGif = MyUtil.compressBitmap(bitmapGif, true, width, height);//将bitmap压缩到指定宽高。
//        }

//        if (bitmapGif != null) {
//            onNewResultImpl(bitmap,dataSource);
//        } else {
//            onFailure(dataSource);
//        }




       /* try {
            onNewResultImpl(bitmap);
        } finally {
            //CloseableReference.closeSafely(closeableImageRef);
        }*/
    }
项目:RNLearn_Project1    文件:PipelineRequestHelper.java   
@Override
public void onNewResult(DataSource<CloseableReference<CloseableImage>> dataSource) {
  if (!dataSource.isFinished()) {
    // only interested in final image, no need to close the dataSource
    return;
  }

  try {
    if (mDataSource != dataSource) {
      // Shouldn't ever happen, but let's be safe (dataSource got closed by callback still fired?)
      return;
    }

    mDataSource = null;

    CloseableReference<CloseableImage> imageReference = dataSource.getResult();
    if (imageReference == null) {
      // Shouldn't ever happen, but let's be safe (dataSource got closed by callback still fired?)
      return;
    }

    CloseableImage image = imageReference.get();
    if (!(image instanceof CloseableBitmap)) {
      // only bitmaps are supported
      imageReference.close();
      return;
    }

    mImageRef = imageReference;

    Bitmap bitmap = getBitmap();
    if (bitmap == null) {
      // Shouldn't ever happen, but let's be safe.
      return;
    }

    BitmapUpdateListener listener = Assertions.assumeNotNull(mBitmapUpdateListener);
    listener.onBitmapReady(bitmap);
    listener.onImageLoadEvent(ImageLoadEvent.ON_LOAD);
    listener.onImageLoadEvent(ImageLoadEvent.ON_LOAD_END);
  } finally {
    dataSource.close();
  }
}
项目:RNLearn_Project1    文件:PipelineRequestHelper.java   
@Override
public void onNewResult(DataSource<CloseableReference<CloseableImage>> dataSource) {
  if (!dataSource.isFinished()) {
    // only interested in final image, no need to close the dataSource
    return;
  }

  try {
    if (mDataSource != dataSource) {
      // Shouldn't ever happen, but let's be safe (dataSource got closed by callback still fired?)
      return;
    }

    mDataSource = null;

    CloseableReference<CloseableImage> imageReference = dataSource.getResult();
    if (imageReference == null) {
      // Shouldn't ever happen, but let's be safe (dataSource got closed by callback still fired?)
      return;
    }

    CloseableImage image = imageReference.get();
    if (!(image instanceof CloseableBitmap)) {
      // only bitmaps are supported
      imageReference.close();
      return;
    }

    mImageRef = imageReference;

    Bitmap bitmap = getBitmap();
    if (bitmap == null) {
      // Shouldn't ever happen, but let's be safe.
      return;
    }

    BitmapUpdateListener listener = Assertions.assumeNotNull(mBitmapUpdateListener);
    listener.onBitmapReady(bitmap);
    listener.onImageLoadEvent(ImageLoadEvent.ON_LOAD);
    listener.onImageLoadEvent(ImageLoadEvent.ON_LOAD_END);
  } finally {
    dataSource.close();
  }
}
项目:CanPhotos    文件:CanViewPagerActivity.java   
private void handleBitmap(CloseableBitmap closeableBitmap, int position) {
    Bitmap bitmap = closeableBitmap.getUnderlyingBitmap();
    map.put(position, bitmap);

}
项目:SneezeReader    文件:ShareActivity.java   
/**
 * 从Fresco的缓存中获取Bitmap
 * @return
 */
private Bitmap getBitmapFromCache(String imgUrl){

    Bitmap bm = null;

    ImagePipeline imagePipeline = Fresco.getImagePipeline();
    ImageRequest request = ImageRequestBuilder
            .newBuilderWithSource(Uri.parse(imgUrl))
            .build();


    DataSource<CloseableReference<CloseableImage>> dataSource =
            imagePipeline.fetchImageFromBitmapCache(request, this);
    try{
        CloseableReference<CloseableImage> imageReference = dataSource.getResult();
        if(imageReference != null){
            try{
                // do something
                CloseableImage image = imageReference.get();
                if(image instanceof CloseableBitmap){

                    Bitmap bitmap = ((CloseableBitmap)image).getUnderlyingBitmap();

                    Log.i(TAG, "getBitmapFromCache>>> get cached bitmap success");
                    bm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight());

                    return bm;
                }
            }finally {
                CloseableReference.closeSafely(imageReference);
            }
        }else {
            // cache miss
            return null;
        }
    }finally {
        dataSource.close();
    }

    return null;
}
项目:fresco    文件:FrescoFrameCache.java   
private static int getBitmapSizeBytes(@Nullable CloseableImage image) {
  if (!(image instanceof CloseableBitmap)) {
    return 0;
  }
  return BitmapUtil.getSizeInBytes(((CloseableBitmap) image).getUnderlyingBitmap());
}