fresco

An Android library for managing images and the memory they use.

MIT License

Stars
17K
Committers
469

Bot releases are hidden (Show)

fresco - v3.1.3 Latest Release

Published by cortinico 12 months ago

fresco - v3.1.2

Published by oprisnik about 1 year ago

fresco - v3.1.1

Published by passy about 1 year ago

fresco - v3.1.0

Published by passy about 1 year ago

fresco - Version 3.1.0

Published by passy about 1 year ago

fresco - Version 3.0.0

Published by oprisnik over 1 year ago

fresco - Version 2.6.0

Published by defHLT about 3 years ago

fresco - Version 2.5.0

Published by oprisnik over 3 years ago

Version 2.5.0

fresco - Version 2.4.0

Published by oprisnik over 3 years ago

fresco - Version 2.3.0

Published by oprisnik over 4 years ago

Highlights

  • Bumped Fresco's minSdk to 14. We did not remove any Gingerbread-specific code yet, but will do so soon. 091e8b7c4cd11a6cc5b535dd84d8e21a1e243ac0

  • Proper nullability annotations for some classes by using new Infer annotations - this improves Kotlin support and null-safety.

  • Improved Java-only Fresco setup. 4a9961559c8240cbb88eeecf2303f956d0185120

  • Lots of debug logging improvements: More reliable image origin, new MEMORY_BITMAP_SHORTCUT origin, more debug information available. These are available via ImagePerfData#getExtraData()

  • Added experimental option to recover from OOMs: f43d5990600c9ac6c3a18e14e4d3c260cf78b462

  • Added option to force a single image pipeline instance: 5f5c076fe26b17a849498c27c7541550c3ef3984

  • Disk cache support for the Fresco Flipper images plugin.

  • Bumped SoLoader version to 0.9.0.

  • Use buildSrc for Fresco's internal dependency management.

  • WIP: Lots of improvements for our new Fresco Vito UI components.

Pull requests:

  • Fixed resource leak problem while using BlurPostProcessor. Thanks @FrancescoJo for the PR.
  • Make sure there is at least one overlay in GenericDraweeHierarchy. Thanks @dengweichao for the PR.
  • Removed unused padding value. Thanks @erenulas for the PR.

Cleanup

  • Removed Drawee-Volley module. If you're using Drawee-Volley, you can still continue using it by just copying the files removed with 7c2517edee7d4080fab0daf54fd4ac4eca6a8497 into your project. We did not significantly change these in a long time, so this has been stable.
  • Removed OkHttp2 image pipeline artifact. See deba7d1c3c218377a5b67e58f269914d8f8a88be

Full changelog: https://github.com/facebook/fresco/compare/v2.2.0...v2.3.0

fresco - Version 2.2.0

Published by wizh over 4 years ago

Fixes and Improvements

  • Add reportData methods for debugging and crash reporting
  • Add support for work instrumentation
  • Fix animatable drawables not playing
  • Improve debug overlay
  • Show Encoded Cache in Flipper Image plugin
  • Add option to disable/override encoded cache
  • Migrate many deps to use buildSrc

Thanks

Thanks to the following for their pull requests which are included in this release: @iadeelzafar, @xinghui, @JLLeitschuh, @jkcailteux

The full changelog is here.

fresco - Version 2.1.0

Published by oprisnik over 4 years ago

Fresco 2.1.0 comes with tons of improvements, including a Java-only Fresco version.

Highlights

  • A Java-only Fresco version. See below for Gradle setup. Note: If you display animated GIFs, you can use animated-gif-lite instead of animated-gif for Java-only GIF support.
  • SoLoader is now optional again. We've worked on a new NativeLoader interface to load native code on Android. Now, with Fresco 2.1.0 all the changes are available for people to use, see below for the Gradle setup. If you want to employ a custom native loading mechanism, just implement a NativeLoaderDelegate and call NativeLoader.init(yourDelegate) before Fresco is initialized.
  • New ProducerListener2 and RequestListener2. They give you significantly more flexibility since they allow you to access more image information.
  • The possibility to pass down the UI component ID (e.g. Drawee ID / Vito ID) through the whole image pipeline, which, in combination with listeners above, can for example be used for debugging or logging.
  • A new memory type for encoded images and byte buffers: Ashmem. Now you can either use Java memory, native memory or Ashmem.
  • Faster circular native rounding.
  • Improved concurrency handling for deferred releasing - and much more.
  • You can look at the full changelog here.

Java-Fresco Gradle setup:

implementation('com.facebook.fresco:fresco:2.1.0') {
    exclude group: 'com.facebook.soloader', module: 'soloader'
    exclude group: 'com.facebook.fresco', module: 'soloader'
    exclude group: 'com.facebook.fresco', module: 'nativeimagefilters'
    exclude group: 'com.facebook.fresco', module: 'nativeimagetranscoder'
    exclude group: 'com.facebook.fresco', module: 'memory-type-native'
    exclude group: 'com.facebook.fresco', module: 'imagepipeline-native'
}

Custom SoLoader Gradle setup:

implementation('com.facebook.fresco:fresco:2.1.0') {     
      exclude group: 'com.facebook.soloader', module: 'soloader'
      exclude group: 'com.facebook.fresco', module: 'soloader'    
 }
fresco - Version 2.0.0

Published by oprisnik over 5 years ago

Breaking Dependency Change

We bumped the major version since Fresco is now using AndroidX support libraries.
If you are still using the previous support library, please use version 1.13.0 until you've migrated to AndroidX.

New Flipper Images Plugin

We've open sourced our Flipper images plugin, which makes it easy for you to debug images within your application. Take a look at the Flipper documentation here: https://fbflipper.com/docs/features/images-plugin.html
It also allows you to track unclosed CloseableReferences if you're using the image pipeline directly.

Fixes and Improvements

Highlights:

  • Added explicit color management (51efaa75f410a390566f72596099c35d85a42216). See #2323 for more information.
  • Added API to get the size of the disk cache.
  • Fix scaling up image with RoundingParams.
  • Prevent Fresco from crashing for certain invalid GIFs.
  • Added local content URI support for fetching encoded images.
  • Added CloseableReference leak tracking. You can hook up your own listener to track unclosed references.
  • Video thumbnails: generate video thumbnail from content provider when we cannot get file path.
  • Updated the Showcase sample app to enable the Flipper images plugin and started using Kotlin.
  • Display Image URI in Fresco's debug overlay.
  • Improved image origin listener accuracy.
  • Added caller context verification to the ImagePipeline. You can now check whether proper image attribution (caller context) is set.

Full changelog: https://github.com/facebook/fresco/compare/v1.13.0...v2.0.0

Thanks

Thanks to the following for their pull requests which are included in this release: @otopba, @lpy and @kexuejin

fresco - Version 1.14.2

Published by oprisnik over 5 years ago

  • Added leak tracking for CloseableRefererences. You can hook up your custom leak handler for unclosed CloseableReferences which is triggered when a reference is GCed without being explicitly closed.
  • You can also use the new Flipper images plugin (https://github.com/facebook/flipper) to track these leaks.
fresco - Version 1.13.0

Published by oprisnik over 5 years ago

  • Open sourced our Fresco Flipper plugin.
  • Updated target SDK to 28.
  • Replaced gnustl_static with c++_static.
  • Updated various dependencies.
fresco - Version 1.12.1

Published by zmroczek over 5 years ago

This is a hotfix release including changes below

  • Optionally downsample gif frames to drawable dimensions 7479a6f
  • Expose hasCachedImage for ImagePipeline 90f7aa6
fresco - Version 1.12.0

Published by zmroczek over 5 years ago

Fixes and Improvements

  • SoLoader updated to v0.6.0 with support for App Bundles 6fc071d
  • New native image transcoder module (native-imagetranscoder) a6b47b9
  • Added new "critically low" foreground memory trim level 9745eb8
  • Expose ID generation and submitFetchRequest 7d67c7f
  • New function in BitmapUtil to get the dimensions of an image from its Uri 1205892
  • Added option to show all FadeDrawable layers per default a340566
  • Register LruBitmapPool as memory trimmable 839b5a1
  • Added GifAnimationBackend that improves the GIF Lite variant 027f95d
  • Add option to control prefetching to bitmap cache per request 6ca0fa9
  • Add image request option to override default network images resizing d503601
  • okhttp updated to 3.12.1 0866e81

Thanks

Thanks to @dulmandakh for your pull request!

fresco - Release Notes v1.11.0

Published by erikandre about 6 years ago

Fixes and Improvements

  • Moved native image filters into a separate gradle module (native-filters)
  • Fix for OkHttp disk caching (allows you to disable Fresco disk cache and use OkHttp)
  • Made most native code optional (jpeg transcoder and native memory chunks)
  • Proper support for GIFs when using a RetainingDataSource
  • Fix to disable caching for unknown image types
  • Fix bug when using DownSample and RegionDecoder together
  • Fixed image origin in debug overlay
  • Color space support
  • Improved HEIF support (on devices which supports decoding them)
  • Fixes for Android Studio layout preview
  • Improved blurring and rounding with antialiasing (see showcase app)
  • Add support for windows ICO image format
  • libjpeg update to 1.5.3
  • libwebp updated to 1.0.0
  • libpng updated to 1.6.35

Thanks

Thanks to the following for their pull requests which are included in this release: @Crysis21, @JuniperPhoton, @dryganets, @Yrlec, @s1rius, @qhyuan1992, @xjy2061, @zjupure

fresco - Version 1.10.0

Published by defHLT about 6 years ago

Release Notes v1.10.0

Breaking

  • Remove media variations
  • Pass DraweeController down to data source generation: a7796dea693cb63f9e0933236335e8a68f24157a

Fixes and Improvements

  • Updated Comparison app
  • Do not cache images if they are of unknown format 7a874c17bda54a92755d36bce6278599cc0cecc1
  • Fix webp add round draw out of bound (#2132) (thanks wangfang) 5357424115b6e3ef9966d141efb66cd72bb5f0e9
  • Fix GIF images scaling with FIT_XY scale type 6898a9c39a6ef930fe84c5208daaa08f2a22432d
  • Get rid of internal android Predicate (Prepare for Android P) API 0a93ffc58585a1f7104ea7a5e0b93b6c1b16cdcc
  • Control memory cache per request d2474bcd7889dd1e2150aef4a861e3393d6d3dc5
  • Add configuration option for bitmap count limit 3ccf021877571cc66c1cf28ecc82788f83579ad3
  • Handle multiple copies of Fresco 54556c910130a0ea5aa30f547adb1cec826456f5
  • Interstitial shows on profile in MediaGallery (thanks Young Kim) d560881e6d2228e90ddd0d1cf62f269b8c4d7fd0
  • Mark object passed in .equals() as nullable (thanks Christopher Frazier) e1145cfce57bb1b31dbd88d59a353a484a91cc808ef0
  • Many updates for perf logging
  • Update SoLoader to 0.5.0 8e9243e94fc9f8117b09b1fb6c4594feda7411c8
  • Added RoundedNinepatchDrawable e1aa81f797583c244817fc334395a13d0e33b3bc
  • Extend Fresco's ImageFormats to detect HEIF images 84ace378a3c994b0e8d4bf0112bdede6b1af397c

Thanks

Thanks to the following for their pull requests which are included in this release: @cucbin, @chibatching, @mariotaku, @hetovar, @Naman-Bhalla, @woyunowuyuda, @hearsilent

fresco - Version 1.9.0

Published by oprisnik over 6 years ago

Updated to MIT license

Breaking Changes

  • Inlined ProGuard rules such that you no longer need to manually copy-over the Fresco proguard file (thanks @gengjiawen). If you are manually adding Fresco-specific ProGuard files in your Gradle files, you can now remove them

  • Added isSameImageRequest() to DraweeController

New APIs

Improvements and bugfixes

  • Added image load time to debug overlay
  • Updated libwebp to 0.6.1 (thanks @eldk)
  • Updated OkHttp to 3.10.0 (thanks @NightlyNexus)
  • Updated GifLib to 5.1.4
  • Fixed GIF rendering for missing color maps
  • Fixed WebP native memory leak (thanks @howardpang)
  • Improved equality handling for controllers and ImageRequests
  • Made bitmap decoding more robust
  • Various other improvements & sample app updates

Thanks

Thanks to the following for their pull requests which are included in this release: @bkpavan, @eldk, @gengjiawen, @howardpang, @jnawaz, @NightlyNexus, @sophiebits!