Skip to content

Releases: elixir-image/image

Image version 0.48.0

29 May 20:37
Compare
Choose a tag to compare

Enhancements

  • Add :model_options and :featurizer_options configuration keys for Image.Classifier. These options are expected to be the options passed to Bumblebee.load_model/2 and Bumblebee.load_featurizer/2 respectively.

  • Add :batch_size as a configuration option. The value is passed to Bumblebee.Vision.image_classification/4. The default value is 10.

Image version 0.47.0

13 May 17:36
Compare
Choose a tag to compare

Bug Fixes

  • Fix warnings for Elixir 1.17

Enhancements

  • Add Image.from_nx!/2

Image version 0.46.0

10 May 23:12
Compare
Choose a tag to compare

Enhancements

  • Adds :dpi as an option to Image.Text.text/2 and Image.Text.simple_text/2.

Image version 0.45.0

06 May 00:35
Compare
Choose a tag to compare

Breaking changes

The implementations of Image.text/2 and Image.simple_text/2 have been simplified to use only the built-in Pango renderer. A bug in font sizing using the Pango renderer has also been fixed. As a result, there may be some small visual differences between text images generated by Image 0.45.0 compared to previous releases.

  • Image.text/2 now uses only the built-in Pango renderer for all use cases. SVG is not nhow used for any rendering in Image.text/2 or Image.simple_text/2. This gives a more consistent output and less ambiguity. However as a result, a small number of options are no longer available since they cannot be honoured by Pango:

    • :text_stroke_color

    • :text_stroke_width

  • The :autofit option to Image.text/2 is also removed. The autofit capability is now controlled by whether the :width and/or :height options are provided.

  • Some other options are now treated differently in Image.text/2:

    • :width and :height are now truly optional. If ommitted, the renderer will calculate the required image size based upon the other options. It is acceptable to specify :width and omit :height in which case the maximum width is fixed and the height is variable.

Bug Fixes

  • Fix warnings on upcoming Elixir 1.17.

  • A bug resulting in incorrect font sizing with using the Pango renderer has been fixed. Font sizing is now very similar to the sizing of the previously used SVG renderer.

Image version 0.44.0

09 Apr 08:20
Compare
Choose a tag to compare

Enhancements

  • Adds Image.Blurhash.encode/2 and Image.Blurhash.decode/1 to encode and decode blurhashes. Based upon a fork of rinpatch_blurhash. Thanks to @stiang for the suggestion. Thanks very much to @rinpatch for the implementation.

Image version 0.43.2

02 Apr 06:04
Compare
Choose a tag to compare

Bug Fixes

  • Fix typo in exif :subsec_time_original.

  • Remove spurious leading space from exif tag description " Standard Output Sensitivity and Recommended Exposure Index"

  • Fix decoding exif tags that have an empty string as a value.

Thanks to Cam Cook for the issues.

Image version 0.43.1

21 Mar 22:13
Compare
Choose a tag to compare

Bug Fixes

  • Image.from_kino/2 and Image.from_kino!/2 now use the :file_ref field in the Kino input structure to identify the required image. This changed was added in Kino 0.11 which is therefore now a minimum version requirement. Thanks to @kevinschweikert for the PR. Closes #133.

  • Improve the thumbnailing guide. Thanks to @nathanl for the PR. Closes #132.

Image version 0.43.0

27 Feb 12:57
Compare
Choose a tag to compare

Breaking Changes

  • Image.erode/2 and Image.dilate/2 now take a radius parameter rather than a pixels parameter. Both functions have been refactored to allow a radius in the range 1..5 with a default of 1. The radius represents the dimension of the matrix used in the Vix.Vips.Operations.range/4 function that underpins dilation and erosion. As such they represent the approximate number of pixels eroded or dilated. In addition, this function now results in a single libvips operation. The previous implementation created n operations (where n was the value of the pixels param) that could result in a slow imaging pipeline and in some cases a segfault of the entire VM due to stack space exhaustion in libvips.

  • The signature for Image.linear_gradient/{1..3} has changed. The function now takes:

    • An image and an optional keyword list of options
    • A width and height as numbers and a keyword list of options
  • Image.dominant_color/2 now returns an {:ok, rgb_color} tuple rather than a [r, g, b] list. Use Image.dominant_color!/2 if only the color value return is required.

  • Image.map_pages/2 is deprecated in favour of Image.map_join_pages/2 to better reflect the intent of the function.

Enhancements

  • Image.linear_gradient/{1..3} now takes an :angle option which determines the angle of the gradient in degrees. Thanks to @severian1778 for considerable patience. Closes #67.

  • Improve options handling and documentation for Image.radial_gradient/3.

  • Add Image.radial_gradient!/3 to mirror Image.radial_gradient/3.

  • Add Image.dominant_color!/2 to mirror Image.dominant_color/2.

  • Add Image.extract_pages/1 which will extract the pages of a multi-page into a list of separate images.

Image version 0.42.0

23 Jan 07:23
Compare
Choose a tag to compare

Deprecations

  • Image.interpretation/0 deprecated in favour of Image.colorspace/0. This is more orthogonal to the Image.to_colorspace/2 call and more in line with common image lexicons.

  • Image.convert_to_mask/1 is deprecated in favour of Image.covert_alpha_to_mask/1 which is more descriptive of the functions purpose.

  • Image.type/1 is deprecated in favour of Image.band_format/1. This function name expresses clearer intent.

Bug Fixes

  • Fix :rbg colorspace to be the correct name of :rgb.

Enhancements

  • Documentation updates for Image.dilate/2 and Image.erode/2.

  • Add Image.cast!/2 to mirror Image.cast/2.

  • Add Image.invert/1 and Image.invert!/2 to invert an image.

  • Add livebook tutorial for edge masking. Run in Livebook

Image version 0.41.0

18 Jan 00:47
Compare
Choose a tag to compare

Enhancements

  • Adds Image.YUV module that provides functions to convert between YUV and RGB image data. Thanks very much to @mat-hek for the collaboration. This module makes it easier to work with video image data which is typically in YUV encoded. The module supports 4:4:4, 4:2:2 and 4:2:0 encoding in either of the BT601 or BT709 colorspaces.