Skip to content

Releases: facebook/fresco

Release Notes v1.11.0

16 Oct 10:33
Compare
Choose a tag to compare

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

Version 1.10.0

23 Jul 09:14
Compare
Choose a tag to compare

Release Notes v1.10.0

Breaking

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

Fixes and Improvements

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

Thanks

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

Version 1.9.0

11 Apr 17:21
Compare
Choose a tag to compare

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

  • Added API to pass an ImageRequest to SimpleDraweeView(53c6151 (53c6151), thanks @bkpavan)
  • Added configurable timeout for HttpUrlConnection network fetcher (005f38a, thanks @jnawaz)

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!

Version 1.8.1

08 Feb 12:00
Compare
Choose a tag to compare

Version 1.8.1 is a bug-fix release following the main 1.8.0 release. In particular, it addresses the following issues:

  • Fresco's SoLoader configuration no longer crashes with certain pro-guard configurations (issue: #2039)
  • In previous versions WebP image might fail to load in certain configurations (commit: 06fe371)

Version 1.8.0

19 Jan 11:25
Compare
Choose a tag to compare

Version 1.8.0 contains several improvements and bug fixes, including:

  • Fixed animated image rendering for dynamic frame dimensions (086fd1d)
  • Fixed downsampling for PNGs (e2c464e)
  • Fixed WebPs with alpha decoding on API <= 17 devices (705b774)
  • Supporting wide color gamut decoding on Android 8+ (4a64df0)
  • Fixed handling pin bitmap errors (a08f9e7, f5eb85e)

Breaking changes

Switched to using SoLoader (aef3790)

SoLoader has been released for a while now, and updated just last week. We've made the decision to add a hard dependency on it and make SoLoader the one and only native code loader that we use in Fresco. API-wise, this means SoLoaderShim is gone. If you were using some other native loading library (e.g. ReLinker), you can either:

  • keep both and just delete your SoLoaderShim implementation, but this will make your APK size bigger
  • switch to SoLoader for the rest of your app as well and remove the other dependency

Thanks

Thanks to the following for their pull requests which are included in this release: @Alonexx, @8enet, @zjupure, @bschnack

Version 1.7.1

19 Dec 13:12
Compare
Choose a tag to compare

This is a bugfix release. For all the relevant changes that made it into this release, please see v1.7.0.

Version 1.7.0

18 Dec 12:57
Compare
Choose a tag to compare

Do Not Use: this release is broken (see #1991)

Version 1.7.0 contains several improvements and bug fixes, including:

  • Switched to OkHttp 3.8.0 (bd9dd82)
  • Region decoding (bd249fa)
  • Native circular rounding (705379e)
  • Added RetainingDataSourceSupplier (ff3bed9)
  • Support inverted rotation orientations (d25944a)

Thanks

Many thanks to the following people who sent pull requests that are included with this release!

Version 1.5.0

10 Aug 15:47
Compare
Choose a tag to compare

Version 1.5.0 contains several improvements and bug fixes, including:

  • Better control of bitmap GPU uploads
  • Add support for fitBottomStart scaleType
  • Support for local content video URI thumbnails
  • Bug fixes

Sample Apps

The following improvements were made to the Fresco Showcase app:

  • Added image resizing example
  • Support loading of SVG files not starting with "<svg" (in the Showcase SVG decoder example)

Breaking changes

  • MediaIdExtractor was removed

Thanks

Thanks to the following for their pull requests which are included in this release: @a-d-collins, @JuniperPhoton, @DkBai, @IguteChung

Version 1.4.0

17 Jul 12:00
Compare
Choose a tag to compare

Animated Image Changes

Rewritten implementation for animated images (GIFs and animated WebPs) with better performance, particularly when showing multiple GIFs.

This brings improved frame caching and memory management, better control for users of Fresco, new features and some GIF rendering issues have been fixed.

Other Updates in 1.4.0

  • Support for Bitmap.prepareToDraw to upload bitmaps to the GPU ahead of time (as suggested by @
    ChrisCraik) - enabled via ImagePipelineExperiments
  • Fixed Shared Element Transitions. You have to manually call draweeView.setLegacyVisibilityHandlingEnabled(true)
  • Per-image custom drawable factory support
  • Caching improvements
    • You can now set a custom cache trim strategy for the image pipeline
    • Added BaseCacheEventListener that implements CacheEventListener for convenience
  • Easier synchronous requests with DataSources#waitForFinalResult
  • Fixed IncreasingQualityDataSource to keep the low res image if the high res request fails
  • Various other bug fixes and improvements: BitmapCounterProvider, Media Variations, Progressive JPEGs, EXIF parsing, ZoomableDraweeView touch logic, DraweeView attributes in Android Studio

Breaking Changes

AnimatedDrawable

The old animation code has been removed, including AbstractAnimatedDrawable, AnimatedDrawable, or AnimatedDrawableSupport . Change your casts to AnimatedDrawable2.
We also removed com.facebook.fresco:animated-base-support since it is no longer needed.

DrawableFactory

Moved DrawableFactory to com.facebook.imagepipeline.drawable.DrawableFactory. Please change your imports if you're using custom drawable factories.

Small cache threshold

Removed this option from ImagePipelineExperiments as well as related code.

Internal changes

Added void onNewResult(T newResult, @Status int status) to Consumer interface.

Removed deprecated methods

  • ImagePipeline#getDataSourceSupplier(ImageRequest, Object, boolean)
  • EncodedImage#setEncodedCacheKey(CacheKey)
  • EncodedImage#getEncodedCacheKey()
  • GenericDraweeHierarchyBuilder#setActualImageMatrix()
  • GenericDraweeHierarchyBuilder#getActualImageMatrix()

Sample Apps (now with Kotlin!)

We've updated our Showcase sample app to include more samples and merged other sample apps into it.

There is also a new Kotlin sample app that shows how to use Fresco with Kotlin.

Version 1.3.0

20 Apr 13:21
Compare
Choose a tag to compare

Version 1.3.0 is mainly a bugfix release.

  • Showcase application improved and new examples added
  • New onUltimateProducerReached() callback method added to ProducerListener.
  • It's now possible to load resources using a qualifying resource URI. This allows for loading resources that are not part of the application's main package.

Breaking Changes

PooledByteBuffer and PooledByteBufferInputStream

These two classes have moved package from com.facebook.imagepipeline.memory to com.facebook.imagepipeline.memory. If you directly make use of either class, simply update your imports.

ProducerListener

The ProducerListener interface has a new callback: onUltimateProducerReached(). This identifies the producer which was ultimately responsible for producing the result which was passed back, so can give an idea about how many requests are satisfied from caches.

If you have an implementation of ProducerListener or RequestListener you will need to add an implementation of this method.

Thanks

Thanks to the following for their pull requests which are included in this release: @voiddog, @nesterov-n, @paour and @josephlam1984.