Skip to content

Latest commit

 

History

History
339 lines (225 loc) · 13.4 KB

CHANGELOG.md

File metadata and controls

339 lines (225 loc) · 13.4 KB

@gradio/imageeditor

0.6.0

Highlights

Setting File Upload Limits (#7909 2afca65)

We have added a max_file_size size parameter to launch() that limits to size of files uploaded to the server. This limit applies to each individual file. This parameter can be specified as a string or an integer (corresponding to the size in bytes).

The following code snippet sets a max file size of 5 megabytes.

import gradio as gr

demo = gr.Interface(lambda x: x, "image", "image")

demo.launch(max_file_size="5mb")
# or
demo.launch(max_file_size=5 * gr.FileSize.MB)

max_file_size_upload

Error states can now be cleared

When a component encounters an error, the error state shown in the UI can now be cleared by clicking on the x icon in the top right of the component. This applies to all types of errors, whether it's raised in the UI or the server.

error_modal_calculator

Thanks @freddyaboulton!

Fixes

  • #8066 624f9b9 - make gradio dev tools a local dependency rather than bundling. Thanks @pngwn!

Dependency updates

0.5.0

Features

  • #8042 92139f3 - refresh the ImageEditor UI. Thanks @pngwn!
  • #8059 074ce38 - ensure the ImageEditor works correctly with layers and change events. Thanks @pngwn!
  • #7845 dbb7373 - ensure ImageEditor events work as expected. Thanks @pngwn!

Fixes

  • #8046 d6c289b - round [x, y, w, h] before cropping to avoid unexpected interpolation on pixel values. Thanks @ernestchu!
  • #7959 2a5cb97 - ensure ImageEditor always draws at the correct position. Thanks @hrrbay!

Dependency updates

0.4.11

Fixes

  • #7817 867ff16 - Trigger the "clear" event of Image Editor. Thanks @uebian!

Dependency updates

0.4.10

Dependency updates

0.4.9

Dependency updates

0.4.8

Dependency updates

0.4.7

Dependency updates

0.4.6

Dependency updates

0.4.5

Patch Changes

0.4.4

Features

  • #7528 eda33b3 - Refactors get_fetchable_url_or_file() to remove it from the frontend. Thanks @abidlabs!

0.4.3

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.0

Features

  • #7183 49d9c48 - [WIP] Refactor file normalization to be in the backend and remove it from the frontend of each component. Thanks @abidlabs!

0.3.2

Fixes

0.3.1

Patch Changes

0.3.0

Fixes

  • #6933 9cefd2e - Refactor examples so they accept data in the same format as is returned by function, rename .as_example() to .process_example(). Thanks @abidlabs!

0.2.3

Fixes

0.2.2

Patch Changes

0.2.1

Patch Changes

0.2.0

Features

0.1.5

Fixes

  • #6799 c352811 - Adds docstrings for gr.WaveformOptions, gr.Brush, and gr.Eraser, fixes examples for ImageEditor, and allows individual images to be used as the initial value for ImageEditor. Thanks @abidlabs!

0.1.4

Patch Changes

0.1.3

Patch Changes

0.1.2

Patch Changes

0.1.1

Patch Changes

0.1.0

Highlights

New ImageEditor component (#6169 9caddc17b)

A brand new component, completely separate from Image that provides simple editing capabilities.

  • Set background images from file uploads, webcam, or just paste!
  • Crop images with an improved cropping UI. App authors can event set specific crop size, or crop ratios (1:1, etc)
  • Paint on top of any image (or no image) and erase any mistakes!
  • The ImageEditor supports layers, confining draw and erase actions to that layer.
  • More flexible access to data. The image component returns a composite image representing the final state of the canvas as well as providing the background and all layers as individual images.
  • Fully customisable. All features can be enabled and disabled. Even the brush color swatches can be customised.

gif.mp4

def fn(im):
    im["composite"] # the full canvas
    im["background"] # the background image
    im["layers"] # a list of individual layers


im = gr.ImageEditor(
    # decide which sources you'd like to accept
    sources=["upload", "webcam", "clipboard"],
    # set a cropsize constraint, can either be a ratio or a concrete [width, height]
    crop_size="1:1",
    # enable crop (or disable it)
    transforms=["crop"],
    # customise the brush
    brush=Brush(
      default_size="25", # or leave it as 'auto'
      color_mode="fixed", # 'fixed' hides the user swatches and colorpicker, 'defaults' shows it
      default_color="hotpink", # html names are supported
      colors=[
        "rgba(0, 150, 150, 1)", # rgb(a)
        "#fff", # hex rgb
        "hsl(360, 120, 120)" # in fact any valid colorstring
      ]
    ),
    brush=Eraser(default_size="25")
)

Thanks @pngwn!

Fixes

  • #6502 070f71c93 - Ensure image editor crop and draw cursor works as expected when the scroll position changes. Thanks @pngwn!

@gradio/image