Skip to content

Releases: imazen/imageflow

v1.3.3-rc33 - Add --quiet command to imageflow_tool

23 Apr 15:51
Compare
Choose a tag to compare

imageflow_tool --quiet suppresses JSON output from being printed to STDOUT

v1.3.2-rc32

22 Apr 19:41
Compare
Choose a tag to compare
v1.3.2-rc32 Pre-release
Pre-release

Querystring commands now use the Mozjpeg encoder by default and produce smaller files at the expense of more CPU time. The &jpeg.turbo=true command can be used to restore the original behavior.

v1.3.0-rc30 - BREAKING changes to JSON API

18 Apr 16:46
Compare
Choose a tag to compare
  • Add mode=aspectcrop to ImageResizer commands and ConstrainMode::AspectCrop to JSON API for minimally cropping to the aspect ratio described by w and h
  • Fix ABI tests and improve function name reporting in said error messages
  • JSON BREAKING: copy_rect_to_canvas node: .width and .height are now .w and .h
  • JSON BREAKING: resample_2d node: .down_filter, up_filter, scaling_colorspace duplicate fields have been removed (they are now in .hints)
  • JSON BREAKING: constrain has been refactored

New Constrain JSON

"constrain" = {
  "mode"= [constraint mode]
  "w" = unsigned integer
  "h" = unsigned integer
  "gravity" = { "percentage" = {x: float, y: float }},
  "canvas_color" = (color value)
  "hints" = {
    resample_hints
  }
// Where [constraint mode] is one of these. Use the value in serde(rename) for JSON.

#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
pub enum ConstraintMode {
    /// Distort the image to exactly the given dimensions.
    /// If only one dimension is specified, behaves like `fit`.
    #[serde(rename = "distort")]
    Distort,
    /// Ensure the result fits within the provided dimensions. No upscaling.
    #[serde(rename = "within")]
    Within,
    /// Fit the image within the dimensions, upscaling if needed
    #[serde(rename = "fit")]
    Fit,
    /// Ensure the image is larger than the given dimensions
    #[serde(rename = "larger_than")]
    LargerThan,
    /// Crop to desired aspect ratio if image is larger than requested, then downscale. Ignores smaller images.
    /// If only one dimension is specified, behaves like `within`.
    #[serde(rename = "within_crop")]
    WithinCrop,
    /// Crop to desired aspect ratio, then downscale or upscale to fit.
    /// If only one dimension is specified, behaves like `fit`.
    #[serde(rename = "fit_crop")]
    FitCrop,
    /// Crop to desired aspect ratio, no upscaling or downscaling. If only one dimension is specified, behaves like Fit.
    #[serde(rename = "aspect_crop")]
    AspectCrop,
    /// Pad to desired aspect ratio if image is larger than requested, then downscale. Ignores smaller images.
    /// If only one dimension is specified, behaves like `within`
    #[serde(rename = "within_pad")]
    WithinPad,
    /// Pad to desired aspect ratio, then downscale or upscale to fit
    /// If only one dimension is specified, behaves like `fit`.
    #[serde(rename = "fit_pad")]
    FitPad,
}

Where [resample hints] includes

    pub sharpen_percent: Option<f32>,
    pub down_filter: Option<Filter>,
    pub up_filter: Option<Filter>,
    pub scaling_colorspace: Option<ScalingFloatspace>,
    pub background_color: Option<Color>,
    pub resample_when: Option<ResampleWhen>,
    pub sharpen_when: Option<SharpenWhen>

v1.2.2-rc29

17 Apr 21:17
Compare
Choose a tag to compare
v1.2.2-rc29 Pre-release
Pre-release

Add region { x1,y1,x2,y2, background_color} and region_percent{x1,y1,x2,y2, background_color} commands that crop and/or expand the canvas to provide a region of exactly the given rectangle.

v1.2.1-rc28

17 Apr 13:14
Compare
Choose a tag to compare
v1.2.1-rc28 Pre-release
Pre-release

ImageResizer4 commands: I've added the f.sharpen_when=downscaling|sizediffers|always command to let you control when sharpening happens in combination with f.sharpen=0..100 This should let you tune the sharpness of text/vector resizing to your liking. The default behavior is tuned for photographs, not vectors.

v1.2.0-rc20

14 Apr 13:42
Compare
Choose a tag to compare
v1.2.0-rc20 Pre-release
Pre-release
Update github token in appveyor

v1.2.0-rc19

14 Apr 13:01
Compare
Choose a tag to compare
v1.2.0-rc19 Pre-release
Pre-release

This release includes 244 commits, including

  • WebP support, both read and write #194
  • Better png-> gif conversion #190
  • No more crashes on malformed or CMYK jpegs #188

v1.1.0-rc18

02 Nov 04:49
Compare
Choose a tag to compare
v1.1.0-rc18 Pre-release
Pre-release

Adds whitespace cropping beta, smart chroma subsampling, and now uses stable Rust.

Now publishing builds and nuget packages for:

  • Ubuntu 18.04 (64-bit)
  • Ubuntu 18.04 (64-bit with haswell feature support)
  • Ubuntu 16.04 (64-bit)
  • OS X 10.11 (64-bit)
  • Windows (32-bit)
  • Windows (64-bit)
  • WIndows (64-bit with haswell feature support)

v1.0.0-rc14

13 Jun 07:20
6f7f054
Compare
Choose a tag to compare
v1.0.0-rc14 Pre-release
Pre-release

This release introduces mozjpeg and pngquant, which offer much smaller file sizes for jpeg and png images respectively, albeit with increased CPU usage during encoding.

These can be used via encoder presets:

encode_preset: {
"pngquant" : { quality: [min number, max number], speed: [number]},
"mozjpeg": { quality: number, progressive: bool}
}

Bugfixes

28 Nov 04:59
Compare
Choose a tag to compare
Bugfixes Pre-release
Pre-release
v1.0.0-rc13

Merge branch 'master' of github.com:imazen/imageflow