Pintura Changelog
Pintura video extension changelog
8.95.3 | 2025-11-25
- Fix issue where
loaderrorwould sometimes not fire on Safari. - Fix issue where discarding an image load error state would trigger the browse file dialog.
8.95.2 | 2025-11-10
- Fix issue where close and/or export buttons could be rendered outside of viewport when user had zoomed in on iOS resulting in a soft lock. Unfortunately the zoom level of the browser window cannot be controlled programmatically, this fix positions the editor modal in the top left corner of the screen allowing the user to close the editor modal and manually reset zoom before re-opening the modal.
8.95.1 | 2025-10-21
- Fix issue where loading a new image would not recompute the scrambled image used for image redaction.
8.95.0 | 2025-10-21
- Add manual input support for percentage font sizes.
- Add mousewheel input support to sliders.
- Fix issue where dropping an image on the Redact tool when
enableDropImagewas set totruewould not load the image. - Fix keyboard input not working on + / - controls next to sliders.
- Fix focus not automatically moving to custom Panel control.
- Fix missing
isActiveproperty on custom Panel control.
8.94.5 | 2025-10-20
- Fix issue where scrolling with trackpad would be sluggish on Windows.
8.94.4 | 2025-10-07
- Fix issue where zooming would still be animated even with
animationsprop set to"never".
8.94.3 | 2025-10-06
- Fix issue where
CSSFontFaceRulewith missing style prop would throw an error.
8.94.2 | 2025-10-03
- Fix issue where Pintura would throw an error if stylesheets contained invalid
@font-facerules (missingsrcorfont-familyprops).
8.94.1 | 2025-09-25
- Fix issue where
imageStateToCanvaswould not correctly calculate canvas scalar when using'force'fortargetSize.fit
8.94.0 | 2025-09-25
- Reverted previous changes to
enableBrowseImageand introducedacceptproperty to control which media types are accepted by user input via browse, drop, or paste. The value of the property is set to the accept attribute of the Pintura internal file input for selecting system files. The default value isimage/*, set tovideo/*to only accept videos, set toimage/*, video/*to accept both images and videos.
8.93.2 | 2025-09-25
- Fix issue where some video files wouldn't load correctly when accept attribute was set to
video/*.
8.93.1 | 2025-09-25
- Fix issue where setting the accept attribute on file input wasn't possible, now
enableBrowseImagealso accepts a string.
8.93.0 | 2025-09-23
- Update types to add new trim remove button property.
- Add
trimLabelRemoveto locale.
8.92.19 | 2025-08-11
- Replace
hiddenattribute on util panels witharia-hidden.
8.92.18 | 2025-08-11
- Fix obscure error thrown when switching between utils when specific Pintura styles were overriden by global CSS selectors.
8.92.17 | 2025-07-09
- Fix issue with TypeScript throwing an error when importing defaults from locale directories.
8.92.16 | 2025-05-29
- Fix issue with reading JPEG tag when tag is positioned outside of DataView.
8.92.15 | 2025-05-28
- Fix issue with video sometimes not playing last couple of frames.
8.92.14 | 2025-05-05
- Fix arrows being slightly clipped when rendered in
bitmapmode.
8.92.13 | 2025-05-05
- Add missing type to TypeScript declaration files.
8.92.12 | 2025-04-07
- Improve arrow styles when rendering in
bitmapmode.
8.92.11 | 2025-04-07
- Fix solid arrow and hover styles not rendering correctly when
bitmapset totruefor arrow. - Fix selection and hover styles not rendering correctly when
bitmapset totruefor paths.
8.92.10 | 2025-04-07
- Fix
backgroundColornot working when using imagescopeinselectionToMaskfunction.
8.92.9 | 2025-04-04
- Fix issue where color matrix effects would be reset when preloading effects in history. Updated the color matrix effect order processing to follow the order of keys in the
finetuneControlConfigurationproperty instead of thefinetuneOptionsmenu.
8.92.8 | 2025-04-03
- Fix order in which color matrix effects are applied to the image. The order now aligns with the order of the menu items in the toolbar, the filter is always applied last.
8.92.7 | 2025-03-28
- Fix issue where Pintura modal would be rendered behind scrollbar when
scrollbar-gutter: stablestyle was assigned to document.
8.92.6 | 2025-03-20
- Fix issue where
titleon items would automatically be set to same value as label.
8.92.5 | 2025-03-17
- Fix issue where
SelectionShapetype wasn't exported by TypeScript declarations. - Fix issue where enter key wouldn't create newline on Android.
- Fix issue with modal being too tall on iOS and Android.
8.92.4 | 2025-02-28
- Fix issue where dragging line ends or path points would not call
beforeUpdateShape - Fix issue where adding a text shape would not call
beforeUpdateShape
8.92.3 | 2025-02-24
- Fix issue where Firefox wouldn't process an SVG if it did not have width and height attributes.
- Fix issue where setting
disableErasetotruewouldn't prevent the shape from being erased.
8.92.2 | 2025-02-18
- Fix issue where video time indicator would skip past end frame in timeline.
- Fix issue where video play started outside of trim clip would skip to next trim clip.
- Fix issue where video play action when paused on end frame would skip to first trim clip.
8.92.1 | 2025-02-12
- Fix issue where video load error would not show "Error loading media" status.
8.92.0 | 2025-02-10
- Add support for setting tool title attribute in markup editor toolbar.
- Add support for setting util title attribute.
- Fix issue where circle overlay wouldn't render when animations were disabled.
8.91.7 | 2025-01-28
- Fix issue where on Safari the an image fill would sometimes not be applied when creating the output image.
- Fix issue where path shape background fill would remain visible outside of crop rectangle.
8.91.6 | 2025-01-27
- Fix issue where resizing shape to below 1x1 pixels would cause shape corner controls to dissapear.
8.91.5 | 2025-01-10
- Fix issue where pressing backspace while in font size text input mode would remove active shape.
8.91.4 | 2025-01-08
- Fix issue with Next 15 Turbopack throwing error while trying to compile Pintura module styles.
8.91.3 | 2025-01-03
- Revert changes made for Tailwind 4, add FAQ entry to documentation.
8.91.2 | 2024-12-31
- Fix issue where Tailwind 4 generic layered selectors with
!importantoverride internal Pintura styles.
8.91.1 | 2024-12-30
- Fix issue where Tailwind 4 would override internal Pintura styles for hidden elements.
8.91.0 | 2024-12-16
- Add
imageBackgroundFilter, set to'image'to apply filters and effects to selected image fill. - Fix issue where text shape with background color would be drawn when tapping canvas.
8.90.3 | 2024-12-09
- Fix issue with parsing JPEG headers throwing an error for some images.
8.90.2 | 2024-12-09
- Fix issue where switching between portrait and landscape crop aspect ratio would not insert a history entry.
8.90.1 | 2024-12-04
- Fix issue where panel height was no longer limited by editor root height.
- Fix issue where editor view would jump up while selecting a dropdown value in a panel that was scrolled out of view.
8.90.0 | 2024-11-28
- Add
lineEndScalarandlineStartScalarprops to line shape. These props control the factor used to scale the start and end styles, when onlylineEndScalaris used both ends of a line are scaled.
8.89.9 | 2024-11-28
- Fix issue with
imageWriter.copyImageHeadcopying the input image color profile to the output image after converting the image colors to sRGB resulting in the color profile being applied twice. The newcopyImageHeadimplementation copies the original image head but leaves out the ICC color profile. Browsers that support thecolorSpaceproperty on theImageDataClass will not convert images to sRGB but will retain the "Display P3" color profile.
8.89.8 | 2024-11-22
- Fix issue with invalid casing in Dutch locale filenames.
8.89.7 | 2024-11-13
- Fix issue where sometimes the output size would not mismatch the targetSize with 1 pixel.
8.89.6 | 2024-11-08
- Fix issue with the font size dropdown not selecting the correct font size when using font size fractions.
8.89.5 | 2024-11-07
- Fix issue where
processabortevent was not fired when clicking close button next to process error status.
8.89.4 | 2024-10-29
- Fix issue where alpha blending didn't work correctly on Firefox.
8.89.3 | 2024-10-28
- Fix issue where pressing backspace or delete while focussing a text input outside of the Pintura root would delete a selected shape.
- Fix issue where tab would not scroll into view when selected near edge of tablist.
8.89.2 | 2024-10-18
- Fix issue where shape could still be removed with backspace even if shape had
disableRemoveproperty set totrue.
8.89.1 | 2024-10-16
- Improve double click zoom dropdown, add two additional zoom "reset" actions.
8.89.0 | 2024-10-16
- Add double click zoom dropdown to reset zoom level. Will zoom to fit if image is larger than stage, will zoom to 100% if image fits on stage.
8.88.3 | 2024-10-02
- Fix scroll wheel not working in Markup Editor since accessibility update.
- Fix issue where having only history navigation enabled would not apply toolbar padding.
8.88.2 | 2024-10-01
- Fix
en_GBlocale casing.
8.88.1 | 2024-09-30
- Fix issue where tapping with Apple Pencil had no effect.
8.88.0 | 2024-09-19
- Add
cropWillRenderInfoIndicatorto enable customizaton of the data shown in the crop info indicator.
8.87.0 | 2024-09-17
Several small improvements to pass Lighthouse accessibility tests.
Please note that this update includes small changes to the internal HTML structure, if you've used custom CSS to override style selectors these styles might be affected.
- Add
preventModalAutoFocus, set totrueto prevent moving focus to the modal when it opens. - Fix issue where modal didn't prevent focus from leaving the modal.
- Fix issue where util tabs structure wasn't valid.
- Fix issue where title attribute on a toggle button showed
undefined. - Fix issue where focus ring wouldn't show on first interactive element.
- Fix issue where labels were missing for some range inputs.
- Fix issue where selecting shapes via keyboard shape list would throw error.
- Fix issue where focus ring didn't show in frame util.
- Fix issue where tabpanel was focusable even when contained focusable elements.
8.86.1 | 2024-09-13
- Fix issue where text style controls would show above text shape in modal input model if text shape
formatwas set to'html'. - Fix issue where new lines couldn't be added when in modal text input mode.
8.86.0 | 2024-09-13
- Improve Sharpie tool line drawing quality, Pintura now interpolates between input points creating more natural lines.
8.85.1 | 2024-09-06
- Fix issue with Redact shapes not rendering after removing all shapes.
8.85.0 | 2024-09-06
- Fix issue with line breaks being entered in auto-width text boxes.
- Fix issue with text shape offset not being stable while switching between shape layout modes.
- Improve text editing UX when
enableTapToAddTextis set totrue, active shape now needs to be deselected first before a new text field is created. - Improve text shape dragging. While in edit mode text shapes can now be dragged by tapping and dragging on a non-text part of the text shape, no more need to confirm the text shape first. This only works with text shapes that have a fixed width and/or height.
- Improve text editing UX on mobile devices, when closing the soft keyboard while editing a text, the text shape automatically switches to selected mode.
8.84.2 | 2024-09-04
- Fix issue with Redact shapes not rendering when set on editor init.
8.84.1 | 2024-09-04
- Fix video loading on iOS Safari.
8.84.0 | 2024-09-02
- Add text scaling to auto width text shapes. Enable by setting
disableTextScaletofalseon the text tool style defaults. - Fix issue where the crop info indicator didn't take into account manually set resize information.
8.83.5 | 2024-08-30
- Fix issue with text width horizontal controls being broken.
8.83.4 | 2024-08-28
- Fix issue where ellipse or rectangle without
backgroundColorbut withbackgroundImagewould throw error.
8.83.3 | 2024-08-27
- Fix text shadow and outline not being copied to new text shapes.
8.83.2 | 2024-08-23
- Fix memory leak.
- Fix issue with shape
disableStylenot working in combination withenableMultiSelect.
8.83.1 | 2024-08-22
- Prevent external stylesheets from impacting empty div element styles inside Pintura.
8.83.0 | 2024-08-12
- Add console warning when required props
localeand orimageReaderare missing. - Fix issue where selected tool in Finetune util would reset to first position in React.
8.82.18 | 2024-07-31
- Fix issue where dragging an image tag to the markup editor wouldn't correctly load the image resource on Firefox and Chrome Windows.
8.82.17 | 2024-07-30
- Improve loading of videos on iOS.
8.82.16 | 2024-07-29
- Fix
preventDefault()ononkeydowninInputcomponent not working. - Fix misalignment of
backgroundImagewhen usingbackgroundSizeon ellipse shape.
8.82.15 | 2024-07-23
- Fix issue with locale file exports not being serializable.
- Fix the Trim util locale incorrectly being included in the core package combined locale export.
8.82.14 | 2024-07-23
- Fix issue with text alignment while editing text.
8.82.13 | 2024-07-22
- Improve compatibility with stricter Content Security Policies.
- Fix
imageColorMatrixtype being incorrect.
8.82.12 | 2024-07-16
- Fix text sometimes wrapping incorrectly when generating output image.
8.82.11 | 2024-07-05
- Optimise memory usage of various filter effects.
8.82.10 | 2024-07-03
- Fix issue with Pintura test version throwing error when using shapePreprocessor.
8.82.9 | 2024-07-02
- Further improvements to JPEG header and EXIF data parsing.
- Fix crop select preset dropdown title missing.
- Fix titles missing from tabs.
- Fix resize lock icon misalignment.
8.82.8 | 2024-06-25
- Fix issue where setting
backgroundSizeproperty on elllipse would not impact texture rendering.
8.82.7 | 2024-06-24
- Fix issue with EXIF data not being written correctly for some JPEGs.
- Fix issue with text font dropdown sometimes throwing an error on Firefox when custom fonts were loaded.
8.82.6 | 2024-06-11
- Fix
strokeDashproperty not working for lines.
8.82.5 | 2024-06-10
- Fix color picker forcing opacity to
0on Linux. - Fix usage of deprecated
substrmethod.
8.82.4 | 2024-06-06
- Fix issue with slider knob location jumping to 0 when tapping on iOS.
8.82.3 | 2024-06-06
- Fix issue where color picker hue and brightness values would reset their positions to 0 when selecting full black or red colors.
- Fix issue with slider knob location jumping to 0 when tapping on iOS.
8.82.2 | 2024-06-05
- Fix issue with text shadow being cut off.
- Fix issue with annotation positioning when
canvasMemoryLimitwas set. - Fix issue with double icc profile when copying JPEG head on Chrome.
8.82.1 | 2024-05-30
- Update TypeScript declarations.
8.82.0 | 2024-05-30
- Add option to easier override default markup shape styles using
createMarkupEditorShapeStyleControls - Add
panproperty, set to target position{ x:100, y:100 }to pan view towards that position.
8.81.1 | 2024-05-23
- Fix issue with XMLHttpRequest being replaced with a custom object on some third-party platforms.
- Fix issue with vignette color adjustment not rendering correctly in editor.
8.81.0 | 2024-05-15
- Add basic multi-select interaction. Enable by setting
enableMultiSelecttotrue. Hold shift to select multiple shapes. Shapes can be styled and translated as a group. If a style is disabled on one of the selected shape that style won't be shown in the style panel. When a shape that can't be moved is part of a group the group as a whole cannot be moved. - Fix issue with
'force'fit mode not calculating the size when used withimageStateToCanvas
8.80.1 | 2024-05-13
- Fix issue where a text shape without
fontSizeprop returned byshapePreprocessorwouldn't draw.
8.80.0 | 2024-05-13
- Fix issue where resize util would not show actual size when switching from crop util.
- Add Eye Dropper support for Blink based browsers (Chrome, Edge, and Opera), set
enableEyeDropperon any color picker control to enable. - Update resize util so it can be used with video.
8.79.2 | 2024-05-06
- Fix issue with font color control not showing color input field.
- Fix edge antialiasing on inverted ellipse shape.
8.79.1 | 2024-05-02
- Fix issue with shape properties being set to
nullcausing the editor to crash. - Fix issue with pressing undo while adding a shape causing previous and current shape to be removed from history.
8.79.0 | 2024-04-29
- Add
disableAcceptSnapproperty toshape, set totrueto disable including this shape in the list of snap targets. - Fix issue with path
backgroundColordissapearing when drawing large non-bitmap shape.
8.78.2 | 2024-04-27
- Fix bug where a
backgroundImageon a decoration shape would show a flickering loading indicator. - Fix incorrect type declaration.
8.78.1 | 2024-04-17
- Remove dynamically generated style tag.
8.78.0 | 2024-04-16
- Add
cspprop to editor options. Set to{ styleNonce: '1234ABCD' }to assign anonceattribute to dynamic style tags. - Fix progress indicator still being animated even when animations set to
'never'
8.77.4 | 2024-04-16
- Fix issue where video's wouldn't play on iOS 17.4.
8.77.3 | 2024-04-12
- Fix issue with box shape corner radius.
8.77.2 | 2024-04-12
- Fix various text box rendering issues.
- Fix issue with shapePreprocessing of line shapes.
- Fix error thrown while drawing path and cancelling interaction.
8.77.1 | 2024-04-02
- Fix error when destroying and recreating overlay editor in React context.
- Fix error when selecting path shape point.
8.77.0 | 2024-03-28
- Add
'complete'option to shapestatusproperty. When set the loading indicator doesn't show and shapes assume abackgroundImagehas finished loading. - Add
disableShowPointsprop to shape, set totrueto disable rendering vertices on paths. - Fix issue where some animations still ran even with
animationsprop set to'never'. - Fix issue where text confirm button in text entry modal would not show label or icon.
- Fix issue where text align control didn't correctly reflect current shape text alignment.
- Fix issue where creating an open path shape wouldn't update the history state correctly.
- Fix issue where hover outlines would not be removed when removing shape.
8.76.0 | 2024-03-13
- Add tap polygon edge to add point.
- Add tap polygon point to select point.
- Add remove polygon point control menu.
- Add
selectedPointto shape, set to index of point to select a point. - Add
disableAddPointsto shape, set totrueto prevent adding points to and removing points from a polygon shape. - Fix issue where holding shift when drawing an ellipse or square would only draw in bottom right direction.
- Fix
animationsproperty type in TypeScript declarations. - Fix issue where holding shift while nudging points with keyboard would snap point.
8.75.0 | 2024-03-11
- Add
Selectcomponent for easier dropdown creation inwillRenderhooks.
8.74.4 | 2024-03-11
- Fix issue with video extension interacting with Pintura API.
8.74.3 | 2024-03-08
- Fix issue where switching between utils still caused issues.
8.74.2 | 2024-03-07
- Fix issue where Finetune utility crashed if
finetuneOptionswas set to empty array.
8.74.1 | 2024-03-07
- Fix issue where quickly switching between utils could lock up editor on React.
- Fix issue where calling
updateImagewould sometimes throw an error.
8.74.0 | 2024-03-04
- Add video thumbnail creation, the default image writer can now generate an image from a video file.
- Add setter to
imageCurrentTime, setting this prop on load will update the time indicator position. - Add
currentTimeprop toimageStateso it's available for the image writer. - Fix issue on Safari where the video time indicator would sometimes jump backwards when playing video.
8.73.2 | 2024-03-01
- Fix issue where zoomed out webview would incorrectly mask annotation shapes.
8.73.1 | 2024-02-19
- Fix missing TypeScript types for new props.
8.73.0 | 2024-02-19
- Add
fixScrollDirectionprop, set totrueto correct inverted scroll and touch interaction on MacOS. - Add
willRenderUtilTabs, use to adjust, replace, or re-order the nodes used to render the tabs.
8.72.5 | 2024-02-12
- Fix issue where setting crop aspect ratio after dragging crop corner would sometimes result in crop falling outside of view.
- Fix
annotateWillRenderShapeStyleControlsanddecorateWillRenderShapeControlshooks not being public.
8.72.4 | 2024-02-08
- Fix issue where for certain markup editor controls the title attribute showed "undefined".
8.72.3 | 2024-02-07
- Fix issue where an error would be thrown when loading the markup editor.
8.72.2 | 2024-02-05
- Fix issue where Retouch plugin locale files were imported incorrectly.
8.72.1 | 2024-02-02
- Fix issue where line start and end styles wouldn't be rendered above frame.
8.72.0 | 2024-01-30
- Add
aboveFrameproperty, set totrueto render shape above frame. - Fix issue with shape positioning when image was flipped and canvas memory limit exceeded.
- Fix issue where text background color would fill text shape.
8.71.7 | 2024-01-26
- Fix issue where pressing backspace in color picker input field would remove shape.
8.71.6 | 2024-01-25
- Fix issue where pressing backspace in the font size input would remove shape.
- Fix performance issues when zooming decoration canvas.
- Fix issue where editor would freeze when programmatically switching between shape utils.
8.71.5 | 2024-01-23
- Fix issue where Firefox on Android would sometimes output a black image.
8.71.4 | 2024-01-23
- Fix issue where retouch brush size couldn't be updated.
8.71.3 | 2024-01-21
- Fix issue where moving path points didn't update history correctly.
- Fix issue where panel content could be cut off by editor bounds.
- Fix issue where
'addshape'event wouldn't fire when adding text shape, would only fire after confirming text draft.
8.71.2 | 2024-01-09
- Fix issue with shape brush size being set to
undefinedafter removingstrokWidthfrom other shape.
8.71.1 | 2023-12-27
- Fix issue with
backgroundPositionmissing in TypeScript declarations. - Fix
backgroundSizenot working ifbackgroundPositionwasn't defined. - Fix
backgroundRepeatoffset when settingbackgroundPosition.
8.71.0 | 2023-12-22
- Add basic support for
backgroundRepeat, set to'repeat'to repeatbackgroundImageon a rectangle shape.
8.70.1 | 2023-12-14
- Fix issue where redact shapes would sometimes only show edges.
8.70.0 | 2023-12-13
- Add snap to shapes.
- Add snap to grid.
- Add snap to current context edges and center.
- Add hold Ctrl key or Command key to disable snapping.
- Add hold Ctrl key to center shape on draw origin while drawing.
- Add hold Shift key to lock drag axis.
- Add hold Shift key to lock shape aspect ratio while drawing.
- Add
markupEditorSnapThresholdto control snap distance, defaults to0which means snapping is disabled. - Add
markupEditorSnapToContextto control snapping to context edges and center, defaults totrue, only works ifmarkupEditorSnapThresholdis above0. - Add
markupEditorGridSizeto control snap grid size, defaults to0which means a grid is not drawn. - Add
annotateGridSize, andannotateSnapToContext, to control snapping in Annotate util. - Add
decorateGridSize, anddecorateSnapToContext, to control snapping in Decorate util. - Add showing text effects when editing text.
- Fix issue where
text-shadowandtext-outlinewere rendered incorrectly when text height was set.
8.69.3 | 2023-12-08
- Fix issue where trim util wouldn't work when video duration was below 1 second.
8.69.2 | 2023-12-07
- Fix issue with crop util not rendering correctly when it was the only util active.
- Fix issue with confirming selection in predictive keyboard input.
8.69.1 | 2023-12-05
- Fix issue with sharpie tool being slow after multiple paths drawn.
- Fix issue with capitals in locale folder.
8.69.0 | 2023-11-27
- Add outline and textShadow support to text shapes.
- Add
stickerForceEnable, set totrueto show the Stickers util even when thestickersprop is not set. - Fix issue with
enableTapToAddTextwhere tapping outside an active text field would immediately create a new text field instead of confirming text in the currently active text field.
8.68.3 | 2023-11-26
- Fix issue with feather error when drawing image shape.
8.68.2 | 2023-11-21
- Fix issue where undo and redo would not work for sharpie lines.
8.68.1 | 2023-11-20
- Fix issue where Crop util footer would still be rendered even when both the rotation and scale control were disabled.
- Fix issue where
imageTrimwasn't set automatically whenimageMaxDurationwas defined.
8.68.0 | 2023-11-16
- Add
foregroundColor,targetSize, andforceSquareCanvastoselectionToMaskoptions. - Add
foregroundColor,targetSize,maskFormat,shapeFormat, andmimeTypetocreateRetouchShapeoptions. - Add correctly transformed
shapetoselectionToMaskresult object. - Fix issue where mask wasn't correctly aligned when image was flipped or rotated.
- Fix issue where rectangular masks were rotated incorrectly.
- Fix issue where padding was incorrectly applied to the mask rectangle instead of the mask canvas.
- Fix stretched inpaint results when mask wasn't square, can now force square mask with
forceSquareCanvas. - Fix bug where Chrome 119 wouldn't correctly composite canvas operations.
8.67.4 | 2023-11-06
- Fix issue with path tool not drawing more than one anchor point inside other shape.
- Fix
selectionToMaskreturn type in TypeScript declarations.
8.67.3 | 2023-11-02
- Fix TypeScript declarations missing Retouch plugin options.
8.67.2 | 2023-10-26
- Fix issue where retouch selections were very slow when used on large images.
- Improve memory management for video sources.
8.67.1 | 2023-10-19
- Fix issue where button icon for custom panel component could not be set.
8.67.0 | 2023-10-19
- Add detection of
data-touch-scrollattribute on custom child elements, set totrueto enable touch scrolling on iOS.
8.66.3 | 2023-10-09
- Fix issue where
minDurationandmaxDurationweren't part of imageState.
8.66.2 | 2023-10-05
- Fix issue with shortcut options no longer working when passed to
createMarkupEditorShapeStyleControls
8.66.1 | 2023-10-03
- Fix issue where deprecated
stickerEnableSelectImageprop would not enable sticker util. - Fix types.
8.66.0 | 2023-09-27
This release adds support for pixel manipulation using the retouch plugin, for an example implementation of the new features see: https://github.com/pqina/pintura-example-feature-retouch
- Add
textDirectionproperty, set to'rtl'to enable right-to-left text direction. - Add
retouchplugin, this plugin just likestickeris a plugin that is empty by default. - Add
getShapeByIdhelper function to quickly find a shape by id in a collection of shapes. - Add
updateShapeByIdhelper function to quickly update a shape in a collection by id. - Add
selectionToMaskhelper function to create a canvas or blob masked when passed a selection array. - Add
createRetouchShapehelper function to make it easier to create retouch shapes. - Add
createMarkupEditorBrushSizeControlhelper function to create a brush size control. - Add
createMarkupEditorSelectionModeControlhelper function to create a selection mode controls showing new, add, subtract selection modes. - Add
createMarkupEditorSelectionToolStyleshelper function to create brush, lassoo, rectangle, and ellipse selection tool styles. - Add
createMarkupEditorSelectionToolshelper function to create brush, lassoo, rectangle, and ellipse tool buttons. - Add
bitmapprop to shape, set totrueto render shape with canvas, currently only works for path based shapes. - Add
letterSpacingprop to shape. - Add shape
statusproperty, set to'loading', or'error'to show loading indicator or error state. - Add support for
strokeDash,strokeCap, andstrokeJointobitmapbased path shapes. - Add
showTextInputandhideTextInputeditor methods to toggle quick text input. - Add
imageSelectionarray to read out or write to current selection shapes. - Add
imageManipulationarray to render shapes in image layer. - Add
cursorStyle: 'ellipse'to sharpie and eraser shapes. - Add
strokeJoin: 'round', andstrokeCap: 'round'to sharpie. - Add
cursorSizeproperty to shape, takes a fixed size or a shape property reference to read cursor size from. - Add support for tool groups in the util toolbar.
- Add
'blurshape','selectiondown','selectionup', and'selectionchange', events. - Add
featherproperty to lower opacity towards edges of rectangle shapes. - Add
selectionStyleproperty to shape, set to'hook'to only render selection corners when a shape is selected.
And a long list of other small fixes and improvements.
8.65.0 | 2023-09-13
- Add
resizeAspectRatioLockedto set initial lock stated in resize util. - Add
resizeEnableButtonLockAspectRatioto enable or disable the lock button. - Fix issue where backspace would not remove a newly added sticker.
8.64.6 | 2023-09-12
- Fix issue where Firefox would not correclty parse video orientation.
8.64.5 | 2023-09-07
- Fix
fontFamilyOptionsproperty not being read correctly.
8.64.4 | 2023-09-07
- Fix regression where
enableInputno longer worked with font size control.
8.64.3 | 2023-09-05
- Fix issue where style control components couldn't be customized on React Native.
8.64.2 | 2023-09-05
- Fix issue where style control options couldn't be customized on React Native.
8.64.1 | 2023-08-21
- Fix types for new options added to markup editor controls.
8.64.0 | 2023-08-18
- Add
enableInputoption to font size and line height controls. Currently only works when sizes are absolute.
8.63.1 | 2023-08-18
- Fix issue where Hex color input couldn't be enabled on
strokeColorandcolorstyles. - Fix issue where Hex input could still input opacity if opacity input was disabled.
- Fix issue where opaque Hex colors would be defined with 8 characters instead of 6.
8.63.0 | 2023-08-16
- Add Hex color input to color picker control, this input is disabled by default, enable by passing
enableInputtobackgroundColorstyle control options. createMarkupEditorShapeStyleControlsnow also accepts style properties.
Media controls have been moved to core so media can be controlled from main editor. This functionality only works when video extension is loaded.
- Add
"play"and"pause"events. - Add
play(), starts playing a video. - Add
pause(), pauses a playing video. - Add
togglePlayPause(), toggle between play and pause mode. - Add
isPaused(), returns `true' if the video is paused. - Add
mute(), mutes audio. - Add
unmute(), restores audio. - Add
toggleMute(), toggles mute state. - Add
getDuration(), returns the video duration in seconds. - Add
getCurrentTime(), returns the current position in seconds. - Add
setCurrentTime(seconds), sets the current position in seconds.
8.62.0 | 2023-08-07
- Add
imageMinDurationto limit the duration and clip lengths of loaded videos. - Add prevent loading of videos shorter than
imageMinDuration - Add Portugese locale files.
- Add Japanese locale files.
8.61.0 | 2023-08-01
- Add
createMarkupEditorOptionsControlhelper method to create custom option controls for the style control bar. - Fix issue with Safari 16.5 on iOS having trouble processing big images.
- Fix issue where redaction logic would run even with no redaction shapes defined.
8.60.15 | 2023-07-25
- Fix issue introduced in 8.58.0 where typing an ampersand would throw an error when text format was not set to
'html'.
8.60.14 | 2023-07-24
- Fix issue where a hidden toolbar combined with custom CSS top inset would result in crop rectangle corners being misaligned.
8.60.13 | 2023-07-20
- Fix issue where sticker util would not show if no stickers defined but
stickerEnableSelectImagePresetwastrue.
8.60.12 | 2023-07-06
- Fix changelog missing from npm repositories.
- Fix issue with text alignment on Firefox when font size above 1000 pixels.
8.60.11 | 2023-07-04
- Fix
legacyDataToImageStatenot correctly handling0rotation value. - Fix
alwaysOnTopmissing fromShapetype declaration. - Fix incorrectly named media duration reading step in
imageReaderprocess. - Fix issue with font size on Firefox being incorrect on large images.
8.60.10 | 2023-06-29
- Fix incorrect Fill plugin import in Chinese locale files.
8.60.9 | 2023-06-28
- Fix issue with measure loop not correctly detecting editor visibility when creating and destroying multiple editors simultaneously.
8.60.8 | 2023-06-28
- Fix video performance issues on Firefox.
8.60.7 | 2023-06-26
- Fix integration issues with external plugins like the video extension.
8.60.6 | 2023-06-26
- Fix issue with Redact tool being active for video content.
8.60.5 | 2023-06-26
- Fix issue with image crop limit to bounds no longer working.
- Fix issue with measure loop not resuming when hiding a primary editor and subsequently showing a secondary editor.
8.60.4 | 2023-06-19
- Fix issue with MacOS trackpad zooming in markup editor being too slow.
8.60.3 | 2023-06-16
- Fix issue where setting
stickersafter default editor load would not enable sticker util. - Fix problem with media writer TypeScript types.
8.60.2 | 2023-06-06
- Fix issue where transparency grid would not fill crop area.
8.60.1 | 2023-06-06
- Fix transition between transparency grid and background-color.
8.60.0 | 2023-06-06
- Add transparency grid. Set
enableTransparencyGridtotrueto enable.
8.59.1 | 2023-06-05
- Fix issue where ellipse and rounded rectangles wouldn't draw correctly during creation phase.
8.59.0 | 2023-06-05
- Add
imageRedactionRenderingproperty, set to'auto'to enable blurry instead of pixely redactions. Safari currently lacks the necessary APIs so will fallback to the pixel style. - Fix issue where sometimes black borders would shown around redacted areas.
- Fix issue with size warning showing when editor has size.
8.58.4 | 2023-06-02
- Fix issue with Chrome render precision when wrapping text.
8.58.3 | 2023-05-31
- Fix text wrapping issue when resizing text box.
8.58.2 | 2023-05-26
- Fix issue where having multiple modals open at the same time at a certain window size would cause the editor to resize in endless loop.
8.58.1 | 2023-05-26
- Improve internal error handling when loading images and videos.
- Improve warning shown when loading file with type
'application/octet-stream'. - Improve warning shown when editor has no dimensions.
8.58.0 | 2023-05-23
- Add
formatproperty to text shape. Defaults to'text', set to'html'to enable inline text formatting with Bold, Italic, Underline, and Strikethrough. - Add
willRenderShapeTextControlshook to modify controls rendered in the text controls menu. - Add Norwegian locale files.
- Update
'zoom'event, now also fires on image load. - Extract example projects and component packages to the PQINA GitHub repository.
8.57.12 | 2023-05-15
- Fix issue where software rendering mode didn't correctly clean up sticker shapes when dragging out of view.
8.57.11 | 2023-05-15
- Fix issue that caused image to not render when switching to other tab after drag operation.
- Fix issue where rotation input stopped working when tabbing to another window while dragging.
8.57.10 | 2023-05-13
- Fix issue where tab panels were too wide on React Native.
8.57.9 | 2023-05-11
- Fix image writer store type in TypeScript declaration file.
- Fix issue with SSR because of
windowusage. - Fix render issue on Edge 112 and Chrome 113.
8.57.8 | 2023-05-10
- Fix Angular component peer dependencies.
8.57.7 | 2023-05-10
- Update Angular component to work with Ivy.
8.57.6 | 2023-05-09
- Fix issue with incorrect lowercase and uppercase use in locale files.
- Add TypeScript declaration files to locale folders.
8.57.5 | 2023-05-05
- Fix issue where using a canvas element as a shape background would throw an error.
8.57.4 | 2023-05-02
- Fix issue where a disabled style on a markup tool could be overwritten by changing a style on another tool.
8.57.3 | 2023-05-01
- Fix issue where render loop would keep running when editor was hidden.
- Fix issue where
tapToAddTextwould add text outside of canvas when tapping at edges. - Fix issue where mousedown would get stuck when dragging a shape and then switching to another window.
- Fix issue where changing
strokeWidthwith the dropdown in the UI would result in invalid color value. - Extend TypeScript declaration file with
PinturaImageStatetype.
8.57.2 | 2023-04-20
- Fix issue where using the
%symbol in a text would sometimes throw an error.
8.57.1 | 2023-04-13
- Fix problem where history index wasn't correclty set when running
updatingImage
8.57.0 | 2023-04-13
- Add
'writehistory'event.
8.56.1 | 2023-04-07
- Improve Angular adapter components to also proxy editor instance public functions.
8.56.0 | 2023-04-07
- Add Fill util, set
fillOptionsto array of colors or images to use for image background fill. - Fix issue where changing undo action would not select correct frame.
- Further improve conversion of legacy image state.
8.55.0 | 2023-04-06
- Add support for shapes in videos, Annotate, Decorate, and Sticker utils will automatically be enabled when loading a video file.
8.54.5 | 2023-04-04
- Further improve conversion of legacy image state.
8.54.4 | 2023-04-03
- Improve handling of legacy image state in FilePond poster plugin.
8.54.3 | 2023-04-03
- Fix issue where in rare situations a click on a control inside a scrollable element wasn't registered.
8.54.2 | 2023-03-31
- Fix issue where
legacyDataToImageStatedidn't correctly convert FilePond legacy state to Pintura state.
8.54.1 | 2023-03-31
- Fix TypeScript declaration file for
findNodehelper function.
8.54.0 | 2023-03-29
- Add Italian, Swedish, and Hindi locales.
8.53.6 | 2023-03-28
- Fix issue where
legacyDataToImageStatefunction didn't correctly convert legacy state.
8.53.5 | 2023-03-28
- Fix issue where
findNodewould return the correct node. - Fix issue where
enableBrowseImagewas missing from TypeScript declarations.
8.53.4 | 2023-03-23
- Fix issue where a fixed selection could not expand to fill stage.
8.53.3 | 2023-03-23
- Fix issue where Pintura would sometimes output corrupt image on Chrome.
- Fix issue where
imageCropMinSizewould cause crop selection to sometimes exceed stage bounds.
8.53.2 | 2023-03-16
- Improve Chrome version selector to target all Chrome versions.
8.53.1 | 2023-03-16
- Extend Chrome version selector to work around bug introduced in Chrome 109.
- Fix missing imports in locale files.
8.53.0 | 2023-03-16
- Add generic locale import to pintura package.
8.52.3 | 2023-03-14
- Fix issue with software rendering not updating shape
backgroundImagewhen image load was delayed. - Improve markup editor zooming with Mac touchpad.
8.52.2 | 2023-03-03
- Fix missing options parameter to disable default option on font size and line height controls.
8.52.1 | 2023-03-02
- Fix
createDefaultMediaWriterexport andimageTrimproperty missing from TypeScript declaration file. - Fix
createDefaultMediaWriterlogic missing from React video example.
8.52.0 | 2023-02-28
- Add
zoomMaskOpacityto control opacity of overlay shown behind UI when zooming in.
8.51.11 | 2023-02-27
- Fix issue where software rendering would render black background after viewport resize.
8.51.10 | 2023-02-17
- Fix issue reading JPEG with large APP1 header.
8.51.9 | 2023-02-15
- Fix interaction issues with zooming and panning in Filter and Fintune utils on Android.
8.51.8 | 2023-02-08
- Fix crop and shape edge selectors being difficult to adjust as a result of bug in Chrome v109.
8.51.7 | 2023-02-08
- Fix issue with Android devices sometimes outputting a black image.
8.51.6 | 2023-02-07
- Fix issue where updating the
markupEditorToolStylesproperty would not trigger update of styles. - Fix issue where
processImagePromise would not reject when loading unsupported file format.
8.51.5 | 2023-01-25
- Fix issue with
@pqina/pintura-angularmodule not working in production build on Angular 8.
8.51.4 | 2023-01-20
- Fix issue where trim locale file was named
en_gbinstead ofen_GB - Fix issue where path tool translations were missing.
- Fix double locale name, can now import
locale/en_GB/annotate/index.jsinstead oflocale/en_GB/annotate/en_GB.js. - Add locale files to the npm package
@pqina/pintura/locale
8.51.3 | 2023-01-17
- Fix issue where Android emulator on Intel would not return a valid image Blob when calling
toBlobduring image processing. - Fix
backgroundSizevaluewidthandheightonly being applied whenbackgroundPositionwas set. - Fix TypeScript declaration missing types for annotate and decorate utils.
- Fix React component TypeScript declaration missing Vector type.
- Update SvelteKit preset based on 1.0 version of the framework.
8.51.2 | 2023-01-12
- Fix
backgroundSizeandbackgroundImagemissing fromShapedefinition in TypeScript declarations file. - Fix issue where editing text would throw error after switching betweens ticker and annotate view.
- Fix issue where reading Pintura output video's would not work on Chrome.
8.51.1 | 2023-01-10
- Fix problem with text input after switching between decorate, annotate, or redact utils.
8.51.0 | 2022-12-20
- Add
cropMaskOpacityproperty to control opacity of mask shown in crop util. - Fix markup editor tool styles not always retaining their styles when switching between utils.
- Fix issue where text was sometimes incorrectly rendered on new line.
8.50.1 | 2022-12-19
- Fix issue where video would still continue playing when processing or closing the editor.
- Update NextJS example.
8.50.0 | 2022-12-16
- Add
willSetMediaInitialTimeOffsetto control which time offset is initially shown when a video is loaded, by default Pintura loads the center of the first clip range. - Add
muteAudioproperty that sets the initial state of the audio mute button, defaults totrue. - Add calling
abortProcessImagemethod now closes the process error screen. - Add guard against
application/octet-streamfile types, Pintura will now try to guess if the src is an image or video, a warning is shown in console if the mime tyep is set incorrectly. - Fix issue where video would continue playing during processing.
- Fix issue where video would continue playing when closing the editor.
- Fix issue where image processing error would not show.
- Fix issue with aborting video processing not working.
8.49.3 | 2022-12-13
- Fix issue where
enableZoomControlscould no longer be used to disable zoom controls. - Fix issue where when
layoutVerticalToolbarPreferencewas set to'bottom'and only one util was active the image was rendered outside of the editor view.
8.49.2 | 2022-12-12
- Fix issue where setting same Blob object to
srcprop would reload image. - Fix issue where selecting a size preset in the crop preset options dropdown would throw an error.
- Fix issue where pan and zoom would sometimes not work when switching between utils.
- Fix issue with sliders in the frame util not working.
8.49.1 | 2022-12-08
- Fix special symbol input being invisible for auto width text shapes.
- Fix issue where pan / zoom input would not work when only a single util was active.
8.49.0 | 2022-12-07
- Add CMD+D and CTRL+D to duplicate currently active shape (if allowed by shape).
- Add
disableNewlineproperty to text shapes. Set tofalseon default auto-width text shape to allow newlines in. Set totrueon fixed-width text shapes to prevent newlines. - Automatically remove text with newlines in auto-width text shapes when loading shapes if
disableNewlineis not set tofalse. - Auto width text fields that support newlines now also support text-align, the
textAlignproperty needs to be defined on the default shape to enable this. - Improved visiblity of text caret by lowering opacity of text selection border while editing.
8.48.3 | 2022-11-28
- Fix multi-touch input not working in markup editor.
8.48.2 | 2022-11-24
- Fix SSR issue introduced with version 8.48.0.
8.48.1 | 2022-11-23
- Fix TypeScript declarations.
8.48.0 | 2022-11-22
- Add
enableCanvasAlpha, set totrueto make editor canvas transparent. imageStateToCanvasnow forces even size for video sources.
8.47.1 | 2022-11-14
- Fix issue where
imageStateToCanvaswas missing from TypeScript declaration file. - Add defensive styles to prevent CSS collisions.
8.47.0 | 2022-11-08
- Add support for detecting and reading video length and size.
- Add readonly
durationproperty, is0for image data, contains length in seconds for video. - Add
imageTrimproperty to set trim ranges for video. - Add
imageStateToCanvashelper function, use to draw current image source andimageStateto a canvas element. - Add
createDefaultMediaWriterexport, use to combine image and video writers.
8.46.1 | 2022-11-04
- Fix error thrown when loading new images.
8.46.0 | 2022-11-03
- Add
enablePanLimit, defaults totrueset tofalseto prevent limiting pan to center of stage. - Add
panLimitGutterScalar, defaults to0, set between0and1to allow some spacing around the bounds used to limit image panning. - Add automatic handling of
nullvalues when restoringimageState. - Fix issue where zoom/pan would not work correctly with when
previewUpscalewas set totrue. - Fix issue where path tool would not work in React native when passing default markup styles.
- Fix issue where resize tool 100% zoom level would not be set.
- Fix issue where
classNameprop was missing fromPinturaEditorModalReact component type declarations.
8.45.2 | 2022-10-31
- Fix issue where setting a file object as
backgroundImagesource would throw an error.
8.45.1 | 2022-10-27
- Fix issue where editor would throw
containserror. - Add React Native TypeScript example project.
8.45.0 | 2022-10-25
- Enable canvas zoom and pan on all utils except crop and resize. Disable by setting
enablePanandenableZoomtofalse. - Add generic zoom and pan properties.
- Deprecate markup editor zoom and pan properties.
- Fix issue where markup editor would not automatically switch to move tool when adding text with
tapToAddTextset totrue. - Change crop zoom control label to "scale" to prevent confusion with zoom dropdown in other utils.
8.44.1 | 2022-10-17
- Fix bug where text shapes added with
tapToAddTextwere rendered with incorrect size. - Fix issue where when
imageCropLimitToImagewas set tofalseand animageCropAspectRatiowas set the image would not be contained in the crop rectangle.
8.44.0 | 2022-10-11
- Add
dataSizeScalarproperty tocreateDefaultImageScramblerto allow for more detailed blurring, defaults to1. - Add
imageBackgroundImageproperty, set to an image source to draw an image behind the main image. - Fix
imageBackgroundColornot being applied to filter previews. - Fix color filters being applied incorrectly to transparent images.
8.43.1 | 2022-09-29
- Fix issue with keyboard navigation not working correctly in scrollable containers.
- Fix issue where path would be drawn when attempting to select a shape.
- Fix issue where if
cropLimitToImagewas set tofalsethe image was still zoomed in when rotated.
8.43.0 | 2022-09-27
- Add path tool for drawing multi-corner paths and polygons.
- Add support for drawing simple polygons, simple polygons are polygons that don't have intersecting lines.
- Fix issue where 180 degree initial rotation would result in negative crop size.
8.42.1 | 2022-09-26
- Fix issue with NextJS 12.3.x throwing an error while applying markup shapes during image processing.
8.42.0 | 2022-09-26
- Add
requestproperty toimageReaderto allow passing custom headers and setting withCredentials on the request. - Add
headersandcredentialsproperties tostoreproperty onimageWriterto allow passing custom headers and setting withCredentials on the request. - Fix script reference in
pintura-inputexample.
8.41.3 | 2022-09-23
- Fix issue where keyboard navigation with arrows would trigger page scroll.
8.41.2 | 2022-09-21
- Fix
cropSelectPresetFiltermissing from TypeScript definitions.
8.41.1 | 2022-09-20
- Fix issue where color picker selected value wasn't updated when color was changed programmatically.
- Fix issue where setting new values to the
markupEditorToolStylesproperty would not reset current selected styles. - Fix issue where 'selectcontrol' event would fire before markup editor was fully activated.
8.41.0 | 2022-09-19
- Add
markupMaskOpacityproperty which controls the opacity of the mask rendered on top of shapes outside of the image crop. Defaults to1, hiding all markup outside of the image crop. Set to lower value to show markup outside of the image crop, set to0to render markup outside of image crop area at 100% opacity.
8.40.2 | 2022-09-14
- Fix issue where editor would stall when switching utils.
8.40.1 | 2022-09-14
- Fix issue where image mask opacity would sometimes not be set to
1when switching between crop and other utils. - Fix issue where XMP and MPF data was not copied to JPEG headers.
8.40.0 | 2022-09-13
- Add
'tapcanvas'event, fires when the markup editor canvas is tapped. - Add
'selectcontrol'event, fires when a markup editor tool is selected.
8.39.0 | 2022-09-09
- Fix issue where React Native webview proxy would not correctly pass string event details to native layer.
8.39.0 | 2022-09-08
- Add
'selectutil'event, fires when a util panel is selected, receives the selected util name.
8.38.4 | 2022-09-06
- Fix issue where "Presets" caption for the color selector was not translated and renamed caption to "Color palette".
8.38.3 | 2022-09-02
- Fix issue where image would animate in from bottom of view.
8.38.2 | 2022-08-31
- Fix issue where the Pintura Modal component would not correctly render when in React Strict Mode.
8.38.1 | 2022-08-30
- Fix TypeScript definitions for
blobToFile,finetuneOptions, andframeOptions. - Replace symbols in locale files with html entities.
- Upgrade React and NextJS example projects to use React 18.2.
8.38.0 | 2022-08-09
- Fix issue where a slight grey line would be drawn to the left and right of the main image in preview mode.
- Add support for setting
ImageDataandImageBitmapas image source. - Add
'markupzoom'and'markuppan'events to observe zooming and panning in markup editor.
8.37.1 | 2022-08-04
- Fix issue where
processDefaultImagewould not apply frame or line styles.
8.37.0 | 2022-07-28
- Updated NextJS preset to version 12.
- Fix issue where
willRenderShapeControlswould throw error after callingaddPresetfromwillRenderShapePresetToolbar. - Add
layoutVerticalControlGroupsPreferenceset to'top'to move control groups to top. - Add
layoutVerticalControlTabsPreferenceset to'top'to place tabs inside controls groups above controls. - Add
layoutVerticalToolbarPreferenceset to'bottom'to move main toolbar to bottom of view.
8.36.2 | 2022-07-22
- Fix issue where window width and height variables weren't correctly assigned on orientation change.
8.36.1 | 2022-07-22
- Fix issue on Ionic where reset indicator line was drawn incorrectly.
- Fix tablist and sticker HTML buttons not being of type
"button"causing accidental parent form submits. - Fix issue where window width and height variables wouldn't be correctly updated on Cordova based apps.
- Fix issue where shape opacity label would not match opacity of shape when switching from shape with adjusted opacity to another shape.
- Fix issue where shift + scroll scroll direction was reversed.
- Fix issue where zoom level was reset when switching views.
8.36.0 | 2022-07-19
- Add
markupEditorZoomLevelto programmatically control the current zoom level. - Add
markupEditorToolRetainStyles, set totrueto retain markup editor tool styles when loading a new image. - Fix issue with
disableMovenot being set on path when usingcreateMarkupEditorToolStyle('path')
8.35.1 | 2022-07-15
- Fix slight opacity dip during image load in Chrome.
8.35.0 | 2022-07-15
- Add
previewPadproperty, set totrueto show padding around image preview when a frame is selected that renders on the outside of the image. - Add
previewMaskOpacityproperty to control the opacity of the mask that is rendered on top of shapes outside of the image. - Add support for
'never'value tocropMinimizeToolbarproperty, when set to'never'the crop toolbar will never be minimized. - Add
willRenderCanvasstate parameter to TypeScript declarations.
8.34.0 | 2022-07-11
- Add
frameOutsetproperty to nine slice frame style. This controls if the frame image is rendered inside or outside of the crop and at which distance. Use negative value to add margin around frame image and crop edge.
8.33.2 | 2022-07-07
- Fix issue where background color on fixed with and auto height text shapes would not align in the decoration util.
8.33.1 | 2022-07-05
- Fix issue where Angular component package prevented use with Angular 13.
8.33.0 | 2022-07-04
- Add
markupEditorZoomAdjustWheelFactorto control zoom speed in markup editor. - Add slight multiplier to Firefox and Safari scroll wheel interactions to make those a bit snappier.
- Add remove shape by pressing Delete key.
- Add base TypeScript declarations for Vue.
8.32.3 | 2022-06-29
- Fix issue where using a normal frame shape instead of a shape that required preprocessing would throw an error.
8.32.2 | 2022-06-27
- Fix issue with vertical interactions triggering footer navigation on Android for Firefox.
8.32.1 | 2022-06-24
- Fix preset tab alignment on narrow viewports.
8.32.0 | 2022-06-23
- Add support for passing custom shape preprocessor to
createDefaultShapePreprocessor. - Add support for defining custom shape preprocessors as array of functions when using default factories.
- Add scale and context data to shape preprocessor context.
8.31.4 | 2022-06-22
- Export internal helper functions to make shape preprocessing easier.
- Fix issue with line and path shapes not correctly drawing when added as preset shape.
- Fix issue where editor wouldn't read CSS color info when was initially hidden.
8.31.3 | 2022-06-21
- Fix issue with remote custom fonts not loading since version
8.30.0
8.31.2 | 2022-06-20
- Fix issue where utils would render at twice the viewport width on Safari versions 14 and below.
8.31.1 | 2022-06-15
- Fix issue where markup editor style controls would not scroll on narrow viewports.
- Fix issue where corner radius control would show for stickers.
8.31.0 | 2022-06-14
- Add move tool to markup editor, set
enableMoveTooltotrueto enable, combined withenableAutoSelectMoveToolthis makes shape interaction more natural. - Add
enableAutoSelectMoveTooloption to control when the editor auto switches to move tool after adding a shape. By default will switch back to move for all shape tools except the sharpie and the eraser. - Add view/hand tool to markup editor, set
enableViewTooltotrueto enable, alternative to panning the view by holding spacebar. - Add handling of ctrl+enter / cmd+enter keys to confirm text input.
- Add
cropRotationRangeproperty to control range of crop rotation input control. - Fix issue where escape key would cancel text input but not keep shape selected.
- Fix issue with TypeScript naming conflict warning in react-pintura module.
8.30.0 | 2022-06-13
- Scope every
pinturapackage with@pqina. - Convert included example projects to installing
@pqinapackages from pqina private npm. - Remove Angular 8 example project as private npm module installation works with v8, v9 and newer versions of Angular.
- Move Pintura Vue 2 components to
@pqina/vue-pintura/vue-2path inside Pintura vue module. - Add
willRequest, allows prevention of loading external resources (likewillRequestResource) or adding request initialisers like custom headers and/or credentials to requests. WherewillRequestResourceonly runs when loading external stylesheetswillRequestwill run for every resource. - Deprecated
willRequestResourcein favour ofwillRequest.
8.29.5 | 2022-06-08
- Fix issue where range input wasn't centered on mobile viewports.
8.29.4 | 2022-06-03
- Improve layout handling for editor footer element and contents, no footer height is no longer fixed and scales dynamically with content.
- Improve intro animation of preset thumbnails.
- Fix issue where
beforeSelectShapewould not correctly supply previous selected shape when selecting the canvas. - Fix default control missing for rectangle corner radius.
- Fix
stickerEnableSelectImagePresetnot working without also settingstickerEnableSelectImage.
8.29.3 | 2022-06-01
- Fix issue where passing
imageReaderconfiguration options as an object would not work.
8.29.2 | 2022-06-01
- Fix issue where empty text shapes with a
backgroundColorwould not show background color. - Fix various IME text input issues.
8.29.1 | 2022-05-31
- Fix issue where applying a
backgroundColorto a text shape did no longer work. Currently only availabe by adding thebackgroundColorproperty to the default style of the text shape usingcreateMarkupEditorToolStyle.
8.29.0 | 2022-05-30
- Add
cropInteractionFocus, defaults to'image'where the image is dragged and scaled to make a crop selection. Set this property to'selection'to switch to dragging and scaling the crop selection rectangle. - Improved clarity of images on low res screens.
- Fix issue with incorrect zoom percentage being highlighted in the zoom level dropdown.
- Fix issue where selecting a zoom level from the zoom level dropdown would not work after zooming in or out with mousewheel.
8.28.1 | 2022-05-19
- Fix issue where a default tool was not selected if only one markup editor tool was supplied.
- Deprecated
stickersWillRenderShapePresetToolbar,stickersEnableButtonFlipVertical, andstickerEnableSelectImage. These properties have been replaced withstickerWillRenderShapePresetToolbar,stickerEnableButtonFlipVertical,stickerEnableSelectImagePreset - Fix issue where
stickerEnableDropImagePreset,annotateEnableDropImagePreset, anddecorateEnableDropImagePresetproperties were not exported. - Fix exports missing for interfaces and types in Pintura TypeScript declaration file.
- Fix
editorproperty not being typed in React TypeScript declaration file. - Add SvelteKit example project.
8.28.0 | 2022-05-11
- Add
--color-transition-durationcustom property to control background color transition duration, defaults to250ms. - Add
grabbingcursor style when canvas is panned. - Add matching theme style to panel controls. Set
--color-backgroundand--color-foregroundon.pintura-editor-panelto adjust panel theming. - Add subtle lens effect to Color Picker opacity control.
- Fix issue where flip control was disabled for stickers by default.
- Fix issue with default resize input field style looking too much like the fields were disabled.
- Fix issue where some UI controls were still animated even if
animationswas set to'never'. - Fix issue where setting
elasticityMultiplierto0would make image invisible. - Fix issue where top shape could be moved to top, move to front button now switches to disabled state.
- Fix issue where changing font would throw an error with external stylesheet loaded.
- Fix issue where Pintura would sometimes throw an error when being destroyed but no image was loaded.
- Fix issue where you could zoom the markup editor canvas and move, rotate, or resize shapes at the same time.
- Fix issue where Color Picker slider was difficult to select near plus/minus buttons.
- Fix issue where image sometimes looked blurry on low res displays.
8.27.2 | 2022-05-09
- Add Dutch locale.
- Fix issue where editor in overlay mode would not correctly present small images when the editor container was resized.
- Fix issue where not all properties were exposed as
@Input()on Angular component. - Fix issue where properties on
PinturaDefaultImageScramblerOptionswere not optional. - Fix issue where empty editor instance would block scroll on iOS.
8.27.1 | 2022-04-19
- Fix issue where loading custom fonts with
@importwouldn't work. - Fix issue where text shape would be hidden when switching to a different util while editing text.
8.27.0 | 2022-04-07
- Add missing
editorexport to Svelte components. - Change locale property to merge new set values with existing value making it easier to overwrite labels.
- Change Angular components to expose individual editor properties additional to the single options property.
8.26.4 | 2022-04-04
- Fix issue where HTML tags would be parsed in text field.
8.26.3 | 2022-03-31
- Fix issue where redactions would not render when clarity tool was set to other value than zero.
8.26.2 | 2022-03-28
- Fix issue where calling
redrawfrom one of thewillRenderhooks wouldn't redraw canvas. - Fix issue where no history entry was created when confirming text entry.
8.26.1 | 2022-03-21
- Fix issue where text input box would not be positioned correctly when image fit in editor stage.
8.26.0 | 2022-03-18
- Add
markupEditorZoomLevelsto control the zoom levels shown in the markup editor zoom dropdown. - Add
markupEditorZoomAdjustStepto control the speed at which pressing the zoom buttons increases or decreases zoom. - Add
markupEditorZoomAdjustFactorto control the factor used to increase or decrease zoom speed when holding the zoom buttons. - Add options parameter to
createMarkupEditorFontFamilyControlso default option can be disabled by passing{ defaultKey: undefined } - Optimise Pintura React Native component to clear unused Blob properties before converting to Base64 encoded DataURIs.
- Fix issue where the Pintura React Native component wouldn't correctly detect Safari.
- Fix issue where the Pintura React Native component wouldn't remove
srcproperty from process output. - Fix issue where setting
imageReaderorimageWriterprops on the Pintura React Native component would crash the editor.
8.25.1 | 2022-03-11
- Fix issue with editor outline missing and throwing error when editor wrapped in web component with shadow dom.
- Fix issue where second argument, parent element, for
openDefaultEditorcould not be passed.
8.25.0 | 2022-03-07
- Add
markupEditorWillStartInteractionwhich allows intercepting the markup interaction start event. It receives the position of the mouse and the position of the canvas. Returntrueto proceed with interaction, orfalseto prevent interaction. - Add
enableZoomandenablePanto toggle zoom and pan interaction functionality. - Fix iOS 15 modal issue where dragging inner elements would toggle iOS Safari footer if some children of body element had absolute positioning.
8.24.2 | 2022-02-25
- Improve handling of errors thrown in will render hooks, errors thrown in these hooks will no longer crash the editor.
- Add Ionic 6 preset template.
8.24.1 | 2022-02-16
- Fix issue where image size requirements wouldn't be respected when loading subsequent images.
- Fix issue with
disableSelectnot working.
8.24.0 | 2022-02-10
- Custom store functions may now return
FormDataobject. - Fix issue with
findNodefunction throwing an error.
8.23.3 | 2022-02-07
- Fix issue where detail panel would throw an error when it was active and user switched utils.
- Fix issue where DynamicPanel would always replace root on update, even if root node was unchanged.
- Fix issue where editor toggle panels would move when scrolling the page.
- Fix issue where editor would not always detach panels correctly.
- Fix issue where editor moving focus to panel would cause page to scroll.
- Fix issue where text selection would not work in markup editor.
8.23.2 | 2022-02-04
- Fix text texture size exceeding maximum texture size on Android.
- Fix issue where presets tool would not appear when only setting
willRenderPresetToolbar. - Fix React TypeScript declarations, event content now described better.
- Fix Angular TypeScript declarations, event content now described better.
8.23.1 | 2022-02-01
- Fix label in
cropSelectPresetOptionsshowing on small viewports.
8.23.0 | 2022-01-31
- Add
cropSelectPresetFilter, set to'landscape'or'portrait'to show tabs in preset dropdown and filter landscape aspect ratios. - Add
cropEnableFilterMatchAspectRatio, set tofalseto prevent swapping aspect ratio when switching between preset tabs. - Add fourth parameter imageState to
preprocessImageSourceimage writer hook. - Fix issue with
findNodefunction not correctly searching through lists of nodes. - Fix rendering dropdown panels on half pixels causing slight blurring of panel content.
- Fix bug where on Android text input would scale modal height.
8.22.1 | 2022-01-26
- Fix issue with temporary file input not being hidden properly.
- Fix issue where zoom level would not be reset when loading a new image.
8.22.0 | 2022-01-25
- Add mousewheel zoom to annotation, decoration, redaction, and sticker views.
- Add space + mouse drag to annotation, decoration, redaction, and sticker views.
- Add zoom towards mousewheel position.
- Add zoom level dropdown to toolbar.
- Add zoom in and zoom out button to toolbar.
- Add hold to increase zoom speed to zoom buttons.
- Add fit option to zoom level dropdown.
- Add actual size option to zoom level dropdown.
- Add animated zoom percentage indicator.
- Add snap fit to view when using mousewheel.
- Add
enableZoomControlsproperty to turn on/off the zoom controls. - Add sticker position lock, if sticker shape has
xand/orycoordinate it will snap to that position. - Change spacing between util menu and stage to be smaller.
- Change cursor used for rotation shape control from move to grab cursor.
- Change orchestration of view activation and deactivation, now all views are first deactivated before selected view activates.
- Change presentation of polaroid frame, now no longer zooms out main image.
- Change centering of undo/redo buttons on compact viewports, middle tools now auto centered to view.
- Fix shape selection lines so they align with selected shape when animating views.
- Fix issue where
'is-animated'env property would toggle betweentrueandfalsewhen interacting with shapes. - Fix context menu not working for inline text input.
8.21.1 | 2022-01-21
- Fix issue where
'selectstyle'wasn't available in framework wrappers.
8.21.0 | 2022-01-18
- Add
'selectstyle'event to listen for input on style controls in markup editor. - Fix issue where interacting with opacity control would result in a lot of history entries.
- Fix Safari 15 bug where sticker select image button would not work on iOS.
8.20.8 | 2022-01-17
- Fix issue with force redrawing editor not working in
willRenderToolbarandcropWillRenderToolsafter changing external data. - Fix background color label being incorrect.
8.20.7 | 2022-01-14
- Fix issue where setting
cropSelectPresetOptionsto an empty array would crash the editor. - Fix issue where
backgroundColor,strokeColor, andcolorstyle components could not receiveenablePicker,enableOpacity,enablePresetsprops to control color picker components. - Fix issue with editor instance in Angular component being protected.
8.20.6 | 2022-01-13
- Fix issue where adding a sticker would not fire the
"addshape"event. - Fix issue where switching utils while editing text would throw.
8.20.5 | 2022-01-11
- Fix issue with slider control label not updating in frame editor.
- Fix issue where 9-slice frame showed color style control.
8.20.4 | 2022-01-10
- Fix issue where editor would throw an error if resize util was selected as first util to show.
- Fix issue where editor would throw if 9 slice frame slices overlapped.
- Fix issue where text was invisible when shape
isEditingproperty was set to true andmarkupEditorTextInputModewas set to'modal'.
8.20.3 | 2022-01-07
- Fix issue where upscaled decoration and annotation would be drawn at lower resolution than possible.
- Fix issue where shape backgrounds could be drawn at
0width and the image processing step would throw an error. - Fix issue where
canvasMemoryLimitwasn't taken into account when drawing shape background images. - Fix issue where shape
rightandbottompositions where calculated incorrectly when set to percentage value. - Fix issue with text input modal throwing an error when deselecting text.
- Fix issue with rotated inline text not aligning correctly.
- Fix issue where text input modal would reselect text when switching to emoji keyboard.
- Fix issue with
isSafarifunction throwing error on SSR environment.
8.20.2 | 2022-01-03
- Fix issue where outdated font mime types would not be correctly interpreted.
8.20.1 | 2021-12-29
- Fix issue with shape alignment when
devicePixelRatiowas not2
8.20.0 | 2021-12-29
- Add
previewImageTextPixelRatioto control resolution of text shapes, defaults towindow.devicePixelRatio. - Add
"tapshape"event, is fired when an already selected shape is clicked. - Change render loop to render annotations in view space improving clarity of shapes.
- Change resolution of text shapes, now renders at higher resolution on high retina displays.
- Change
strokeWidthstyle control, when a width is selected thestrokeColoropacity is now automatically set to1if it is0. - Fix issue where
"selectshape"event was fired even when shape was already selected.
8.19.4 | 2021-12-27
- Change render loop to no longer redraw/compute annotations, decorations, redactions, and frame styles if no change to shapes or canvas was detected.
- Fix issue with
'NaN%'values on shape drafts. - Fix issue with custom fonts not being preloaded correctly.
- Fix issue where hover outline would be rendered when dragging stickers.
- Change Svelte preset depedencies, now at latest versions.
- Add Capacitor example project.
8.19.3 | 2021-12-22
- Fix issue with image edit button not showing in FilePond.
8.19.2 | 2021-12-21
- Fix issue where setting
imageStateon FilePond item would not update poster. - Fix issue where multiple
processImagecalls in close succession would fail to output big images. - Improve performance of FilePond Image Editor plugin, image posters are now generated faster and processing of images is queued allowing for FilePond to stay responsive. Requires updating the FilePond Image Poster plugin.
- Fix issue where
eraseRadiusshape property couldn't be exposed as style control. - Fix issue where an increased
eraseRadiuswouldn't properly remove multiple smaller shapes. - Fix issue caused by
imageEditorAfterWriteImagenot returning a Promise. - Fix issue with loading JPEGs where EXIF header is bigger than usual.
8.19.1 | 2021-12-14
- Fix issue where empty markup text shape would throw error when drawing output image.
- Fix issue where arrow style 'None' could not be selected for new arrows if an arrow style was set previously.
8.19.0 | 2021-12-10
- Add
nineframe style, use withframeImageproperty to create image based frames. - Fix issue where lines, paths, and ellipses added with
enableSelectToolToAddShapewere slightly too large. - Fix issue where lines and paths weren't drawn at correct location when image was zoomed in.
- Fix issue with error thrown when drawing in decoration layer.
8.18.0 | 2021-12-08
- Add
cropActiveTransformToolproperty, set to'zoom'to show zoom input as active instead of'rotation'input. - Add
styleRulesproperty to react-native proxy component to allow adjusting editor styles. - Add
customProperieslocation in react-native template to allow for easier adjustment of the template. - Fix issue with Japanese IME character composition on Windows and Android.
8.17.1 | 2021-12-07
- Fix issue where
canvasMemoryLimitwould cause data in thecrop,annotation, anddecorationproperties on theimageStateoutput object to be scaled down.
8.17.0 | 2021-12-06
- Fix
<div>being added to the text input when returning to text edit mode. - Add
createDefaultFrameStylesexport to generate the default frame style object. - Add
createDefaultLineEndStylesexport to generate the default line end styles object. - Add
createFrameStyleProcessorexport to merge custom frame styles with the default frame styles. - Add
createLineEndProcessorexport to merge custom line end styles with the default line end styles.
8.16.9 | 2021-12-02
- Fix problem where composition keys did not all work correctly and were not retained properly when blurring field after editing text.
8.16.8 | 2021-11-30
- Fix issue where an invalid CSS selector in library CSS files would cause build problems.
8.16.7 | 2021-11-29
- Fix issue with IME keyboard not working correctly for text input.
8.16.6 | 2021-11-28
- Fix issue with frame change not creating a history entry.
- Fix shape color changes creating many history entries.
8.16.5 | 2021-11-24
- Fix issue with loading big images introduced in version 8.16.2.
8.16.4 | 2021-11-23
- Improve handling of Firefox bug where it cannot determine SVG size if the SVG does not have a width or height attribute. Will now set width to
300and height to150. - Fix issue with Safari not being detected correctly in a WebView.
- Fix issue where React Native proxy component would stringify image preview impacting performance on iOS.
8.16.3 | 2021-11-22
- Improve memory usage.
8.16.2 | 2021-11-12
- Fix issue with events fired by the WebView not ending up in React Native layer on Android.
- Improve React Native component performance, it now excludes
srcanddestprop from'load'event to lower memory usage. - Improve React Native component performanace, it now excludes
srcprop from'process'event to lower memory usage. - Improve React Native component, it now no longer auto converts the
'process'eventdestproperty toBlob, the output is now a dataURL.
8.16.1 | 2021-11-11
- Fix issue where React Native preset wouldn't work on Android.
8.16.0 | 2021-11-10
- Add inline text editing, set
markupEditorTextInputModeto'modal'to revert to old text editing style. - Add
willRequestResourcehook that is run when the editor loads a remote stylesheet to determine webfont locations in@font-facerules. This hook enables preventing the request in case the remote server doesn't support CORS or the stylesheet doesn't contain@font-facerules and can be skipped. - Add line height property to text shapes, defaults to
120%or1.2 × fontSize. - Add support for
backgroundColorproperty on text shape. - Auto switch cursor style based on shape selection and hover state.
- Improve font rendering line and word breaking accuracy.
- Improve support for custom fonts with different weights.
- Improve shape rendering performance.
- Improve internal element measuring performance.
- Improve font rendering quality in decoration view.
- Improve redact icon style.
- Fix issue where dropdown would not select fallback item.
- Fix issue where dropdowns and navigation would sometimes not respond to clicks after keyboard interaction.
8.15.1 | 2021-11-05
- Fix issue with shape selection outline being rendered at wrong location when changing window size.
- Fix issue with activated shape control panels not hiding when switching between frame styles or selecting different shapes.
8.15.0 | 2021-10-29
- Add
imageDataResizerproperty tocreateDefaultImageWriterthis property allows setting up a custom resize algorithm to improve resize quality. Useful when resizing high contrast images like logo's to very small sizes.
8.14.0 | 2021-10-28
- Add React Native example project. This project loads Pintura in a WebView component and wraps the WebView in an API that mimics the normal React version of Pintura.
- Add
history.getCollapsed()to get history entries up to current index. - Fix issue where touch end events felt "slippery" when pointer events were missing
timeStampproperty.
8.13.4 | 2021-10-27
- Fix issue where frame exports where missing from TypeScript declaration file.
8.13.3 | 2021-10-18
- Fix issue with
previewImageDatabeing a required property.
8.13.2 | 2021-10-13
- Fix issue where appending a space to a text line was not possible.
- Fix issue where Firefox 93 would draw annotations set on editor initialisation incorrectly.
- Fix issue where tapping screen to select image wasn't possible when editor was waiting for image.
8.13.1 | 2021-10-12
- Fix additional iOS 15 modal issues.
- Fix issue with incorrect redaction properties in TypeScript declarations file.
- Fix main menu button text overflow issue for iOS 13.
8.13.0 | 2021-10-11
- Add
'ready'event which fires when the editor is ready for interaction. - Add
'loadpreview'event which fires when the editor has loaded a preview image or the preview image has been updated. - Add
previewImageDataproperty to access current preview image data. - Fix issue where shapes were not deselected when switching between tools.
- Fix issue with iOS 15 drawing black output image when using redact feature.
- Improve performance of generating scrambled preview image.
- Improve scrambling of canvas for very large redaction areas.
- Improve Angular component TypeScript declarations.
8.12.2 | 2021-10-07
- Fix redaction shape controls showing re-order button.
- Improve default scramble by setting default amount to
4. - Improve handling of transparent images.
- Fix issue where scrambled version of transparent image would not inherit
imageBackgroundColor. - Fix issue with Firefox 93 not rendering preview image correctly.
8.12.1 | 2021-10-06
- Fix issue with scrambled image not aligning with preview image when image was flipped.
- Fix issue with Safari not positioning redacted shapes correctly.
8.12.0 | 2021-10-05
- Add
'redact'util. Use to blur or scramble information in an image. By defaults blurred parts of the image are scrambled and then blurred to make sure information cannot be retrieved. - Add
imageScramblerproperty which can be set to a function that handles scrambling the image data for use with the redact util. - Add
createDefaultImageScramblerexport which creates a default image scrambler. - Add ability to select paths created by Sharpie. To prevent users from selecting paths add
disableSelectto the default path style. - Improve image preview update speed for canvas sources.
- Fix issue with image state not restoring correctly when using
updateImage - Fix issue with interface gradient overlay not rendering.
- Fix Angular v9 preset project.
8.11.0 | 2021-09-30
- Add
layoutHorizontalUtilsPreference, set to'right'to move the main navigation to the right side of the editor. - Add
layoutVerticalUtilsPreference, set to'bottom'to move the main navigation to the top of the editor. Will not affect mobile presentation where the menu will stick to the bottom. - Add
enableAutoDestroyto modal options, prevents the modal from cleaning up after hiding. - Add
enableAutoHideto modal options, prevents the modal from automatically hiding after processing an image. - Add
preventScrollBodyIfNeededto modal options, prevents iOS footer lock logic which isn't needed in mobile app context. - Add
preventFooterOverlapIfNeededto modal options, prevents iOS footer spacing logic which isn't needed in mobile app context. - Fix issue with overlay mode showing double buttons when scaled very large.
- Fix issue with additional history entry when editor was in overlay mode.
- Fix issue with typescript declarations not having
shapePreprocessorprop forprocessImageexport.
8.10.3 | 2021-09-28
- Fix issue with annotation buffer size exceeding max texture size.
- Fix issue with overlay editor not zooming in images smaller than editor itself.
- Improve modal rendering on iOS Safari 15.
- Improve Cordova template.
8.10.2 | 2021-09-27
- Fix issue with FilePond Image Editor plugin not being packaged correctly in Angular v9 preset.
- Fix issue with removing markup not correctly updating history state.
- Fix issue with Safari 15 new memory limitations on canvas element.
- Improve modal rendering on iOS Safari 15.
- Improve modal fade out animation.
8.10.1 | 2021-09-22
- Fix issue with
zkey triggering undo action. - Fix issue where scroll offset wasn't restored when closing modal on iOS Safari 15.
- Fix issue where page was scrolled before modal completely covered view.
- Fix issue where modal didn't create a
theme-colortag if notheme-colortag was available in document head. - Improve
createImageBitmapusage on Safari 15 for images that don't have an orientation header. - Improve Angular v9 preset to include FilePond.
8.10.0 | 2021-09-21
- Add temporary warning when shapePreprocessor is not defined and shape with
lineEndorlineStartstyle is selected in markup editor. - Improve menu item rendering to allow wrapping of labels.
- Add Spanish locale files.
- Add German locale files.
- Add French locale files.
- Add Russian locale files.
- Add Chinese Simplified locale files.
- Fix issue with Safari 15 incorrectly applying JPEG EXIF orientation in createImageBitmap.
- Fix issue with iOS Safari 15 incorrectly positioning modal.
- Fix issue with iOS Safari 15 initiating pull-to-refresh while interacting with editor.
- Fix issue with iOS Safari 15 scaling addressbar footer while interacting with editor.
- Fix issue with iOS Safari 15 not correctly reporting viewport height and rendering text input at wrong location.
- Sync meta element
theme-colorwith editor background color.
8.9.1 | 2021-09-16
- Fix issue where close button wouldn't show when image load failed.
- Fix issue where undo/redo keyboard shortcuts would block picking tool in markup editor.
8.9.0 | 2021-09-15
- Add
resizeSizePresetOptionsto enable showing a dropdown with size presets. - Add
resizeWidthPresetOptionsto enable showing a dropdown with width presets. - Add
resizeHeightPresetOptionsto enable showing a dropdown with height presets. - Add
resizeWillRenderFooterto enable customization of the resize plugin footer components. - Add
cropWillRenderToolsto enable customization of the crop plugin toolbar. - Fix TypeScript declarations for frame plugin properties and
imageFrameproperty.
8.8.2 | 2021-09-14
- Fix issue with FilePond preset not showing edit button.
8.8.1 | 2021-09-13
- Add
shapePreprocessorproperty to preset code. - Fix
shapePreprocessorandcreateDefaultShapePreprocessormissing from TypeScript declarations file. - Fix Uppy integration so works with Uppy version 2.
- Fix issue where eraser would erase text shapes that weren't near the eraser location.
- Fix issue where eraser would erase all shapes instead of only lines and sharpie.
- Fix issue where sharpe angles in sharpie line would result in very spiky lines.
- Improve rendering of text input modal, now moves to top if softkeyboard detected and not editing in a modal.
8.8.0 | 2021-09-08
- Improved preset examples to make use of default editor.
- Add
willClosehook fires when user attempts to close the editor when it's running in a modal. - Fix issue with DataURLs not working in version 8.7.0.
- Fix issue where
imageCropMinSizedidn't throw error on image load when image was smaller than defined min size. - Fix issue with rotation controls when a minimum crop size was supplied,
imageCropLimitToImagewas set tofalse, and the loaded image was smaller than the minimum size.
8.7.0 | 2021-09-07
Please note that if you're not using getEditorDefaults, appendDefaultEditor, openDefaultEditor, overlayDefaultEditor, or defineDefaultCustomElements to create the editor, you need to set the shapePreprocessor property after this update. See the editor properties documentation for more details.
- Add
shapePreprocessorproperty, needs to be set when usinglineEnd,lineStart, orframeStyleproperty on shapes. - Add
createDefaultShapePreprocessor, use to set theshapePreprocessorproperty to the defaultlineEnd,lineStart, andframeStyleprocessors. - Add opacity slider to stickers.
- Add
'force'mode to shapebackgroundSizewhich changes the background image to fit the shape size. - Add support for updating the
backgroundImagesource, this enables for example cropping of stickers. - Add
pathCloseprop to path shapes for drawing exotic paths. - Add slight shadow on the inside of the image outline for better visual distinction between crop and image.
- Add
enableSelectToolToAddShape, set totrueto add shape when a markup tool is tapped, defaults tofalse. - Add
enableTapToAddText, set totrueto add inline text shape when clicking canvas, defaults tofalse. - Add undo/redo keyboard shortcuts.
- Add autoselection of text in text input form when input form shows.
- Add support for
invertedproperty to rectangle shape to enable drawing rounded rectangle overlay inwillRenderCanvas. - Add
postprocessImageBlobto enable converting the output image file to a different format, for example a GIF or HEIC. - Improve rendering of image outline, lowered opacity of outline on all but crop util for improved preview of resulting image.
- Improve rendering of decoration shapes, are no longer drawn outside of crop selection.
- Improve render quality of shape manipulator outline.
- Improve path draw quality.
- Improved sticker size calculation logic.
- Improve sticker shape aspect ratio, no longer forces the aspect ratio but sets
backgroundSizeto'contain'instead. - Fix stroke on square not being correctly rendered on inside.
- Fix
'circle-solid'line end shape distance to line. - Fix problem with
cropLimitToImageand rotation on load. - Fix problem with white color in color picker being nearly invisible.
- Fix issue with hidden canvas elements used for gradient overlay staying in DOM.
8.6.1 | 2021-09-06
- Fix issue where sticker plugin would reposition preview image while being inactive.
8.6.0 | 2021-09-02
- Add
imageEditorSupportImagehook to FilePond plugin imag editor to filter out unsupported images. - Fix issue where sharpie would be active in markup editor even if not included in toolbar.
- Fix issue where a tool was always selected in the markup editor.
- Fix issue where removing last shape from markup editor would sometimes trigger error.
- Fix issue where setting active tool would no longer work after user changed tool.
8.5.9 | 2021-09-01
- Fix issue with Uppy editor plugin trying to open remote files.
- Fix issue with
cropMaxSizebeing set too low because of incorrect browser detection.
8.5.8 | 2021-08-31
- Fix issue with
isSelectedandisEditingnot working when setting shapes in'load'event or when assigning initial shapes along with editor options. These props are now also included in theimageState. - Fix issue with TypeScript declarations not having
willRenderShapePresetToolbarproperty. - Fix issue with TypeScript declarations shape
isEditingproperty being readonly.
8.5.7 | 2021-08-19
- Fix issue where dropping a file on
<pintura-input>wouldn't work. - Fix issue where listening for pintura events would not work on
<pintura-input>. - Fix issue where passing a single locale property to a default editor would prevent the editor from loading.
8.5.6 | 2021-08-16
- Fix issue where drop and paste file was not working for file objects.
8.5.5 | 2021-08-13
- Fix obscure ellipse drawing bug.
8.5.4 | 2021-08-09
- Fix issue with clarity input not being applied in preview.
8.5.3 | 2021-08-04
- Fix issue with center button not working since last update.
8.5.2 | 2021-08-02
- Fix issue where resizing the window would reset crop state in overlay mode.
- Fix issue where scrolling the window would reset crop state in overlay mode.
- Fix
cropEnableZoomAutoHidemissing from TypeScript declarations file.
8.5.1 | 2021-07-30
- Improve handling of dropped resources, can now drop image URLs as well.
- Fix
indexproperty missing from history in TypeScript declarations file.
8.5.0 | 2021-07-28
- Add
cropEnableZoomAutoHide, set tofalseto prevent auto hiding of crop zoom control on compact displays. - Improve rendering of rotation control in overlay mode by making it more compact.
- Fix issue where toolbar was hidden when in overlay mode.
- Fix issue with dropdown icon button having too much padding.
- Fix issue with error thrown when
cropSelectPresetOptionsdropdown had noundefinedcustom crop mode.
8.4.1 | 2021-07-27
- Fix issue with overlay mode editor showing a black screen on some devices.
- Fix issue with overlay not setting initial history state correctly.
- Fix issue with
abortProcessImage()not working when called directly after'processstart'was fired. - Fix issue with
abortLoadImage()not working when called directly after'loadstart'was fired. - Add
willProcessImageto enable better interception of a process image request from the interface.
8.4.0 | 2021-07-26
- Fix setting incorrect initial crop when loading an image with
cropLimitToImageset tofalseand applying an initial rotation. - Fix issue with reading EXIF orientation from certain JPEG files.
- Improve history state, now adds initial base state when setting initial props.
- Improve
processImagemethod to accept properties just like theloadImagemethod. - Add
willSetHistoryInitialStateto allow intercepting initial history state and override it. - Add
processDefaultImage, a helper function for headless image processing with less configuration options. - Add
'update'event which is fired every time theimageStateobject is updated.
8.3.1 | 2021-07-21
- Fix modal example in jQuery preset.
8.3.0 | 2021-07-16
- Add
disabledproperty, will disable any interactions with the editor. - Add
statusproperty, set to string or array[label, progressType]to show a custom status message. - Add
preprocessImageSourceto thecreateDefaultImageWriter()to allow preprocessing the image source used to create the output image. - Add
updateImageto update the image source file while retaining the history state. - Add
updateImagePreviewto update the current image preview. - Add
imageMetadataproperty, enables storing custom metadata in theimageStateobject. - Improve image intro animation.
- Improve default style of custom buttons in editor toolbar.
- Improve rendering of path and shape stroke.
8.2.0 | 2021-07-12
- Add
enablePasteImageproperty, allows pasting an image to the browser window, the editor will pick it up if it's at least 75% in view. - Fix scrolling the page when interacting with editor on iOS 12 and older.
8.1.1 | 2021-07-09
- Fix sharpie lines being closed when erasing so eraser would erase sharpie line between end and begin point.
- Fix error thrown when dragging two sides of the crop rect.
- Fix error thrown when rotating and dragging image at the same time and ending the rotation interaction.
- Fix multi-touch zoom scaling too fast.
8.1.0 | 2021-07-08
- Add switch text layout button to switch between fixed text box, auto-height, or auto-width.
- Add
disableTextLayoutproperty, set totrueto disable switching to other text layouts or set to array of disabled layout values. - Add support for
textContentproperty to node list. - Add NodeTree helpers to TypeScript declarations.
- Improve
createNodeto allow calling it with three arguments instead of requiring four. - Fix typo in
Colorproperty of shape in TypeScript declarations. - Fix issue where shape flip horizontal icon had black fill.
- Fix issue where padding of text input box was drawn incorrectly.
- Fix issue where resizing flipped shapes moved all shape corners.
- Fix issue where editing flipped text shapes didn't position the shape correctly.
8.0.3 | 2021-07-05
- Fix new text being flipped in annotation util if image was flipped.
- Fix issue where resizing the window would incorrectly update shape selection indicator.
- Fix positioning issue with text shape when image was flipped and user was inputting text.
- Fix adding stickers at same center position not being placed at random offset from center.
- Fix bug where on Safari adding a sticker would not center it to the viewport.
- Improve interaction in stickers view, click on sticker now allows immidiate dragging.
- Improve Angular component peer dependencies to include Angular 12.
8.0.2 | 2021-06-28
- Fix issue where vignette was drawn on top of annotations in preview.
- Fix
colorandstrokeColorbeing marked as mandatory in the TypeScript declarations. - Fix line style square outline indicator being represented by an arrow.
- Fix issue with the editor not correctly orientating images when image had more than one orientation tag.
- Fix issue where clicking outside of the text input panel would throw an error.
- Fix issue with vue inline component not rendering correctly.
8.0.1 | 2021-06-23
- Fix issue with
<pintura-input>opening multiple editor instances. - Fix issue with
<pintura-input>not usingnameattribute for asynchronous uploads.
8.0.0 | 2021-06-21
Rebrand to Pintura. This name change introduces breaking changes and therefor the major verion number has been increased to 8. Properties that had been deprecated in version 7 have also been removed. A migration guide has been added to the product site.
- Change
<doka-image-editor>custom element to<pintura-editor>. - Change
<image-input>to<pintura-input> - Change
.doka-image-editorCSS class to.pintura-editor. - Change
'doka:<event>'to'pintura:<event>'. - Remove
doka-internal id prefixes. - Remove use of the term "doka" by replacing it with "pintura".
- Improve Cordova backup script, it now stores backup WebAPI in
__pqina_webapi__. - Remove method
undo(), usehistory.undo()instead. - Remove method
redo(), usehistory.redo()instead. - Remove method
revert(), usehistory.revert()instead. - Remove export
imageOrienter, usecreateDefaultImageOrienter. - Remove export
plugin_annotate_defaults, usemarkup_editor_defaultsinstead. - Remove export
plugin_decorate_defaults, usemarkup_editor_defaultsinstead. - Remove export
component_shape_editor_locale_en_gb, usemarkup_editor_locale_en_gb - Remove export
plugin_crop_defaults, setcropSelectPresetOptionsmanually instead, see crop plugins docs. - Remove export
plugin_resize_defaults, this was an empty object, no replacement necessary. - Remove export
plugin_sticker_defaults, this was an empty object, no replacement necessary.
7.18.3 | 2021-06-20
- Add detection for missing mimetype in DataURLs.
7.18.2 | 2021-06-17
- Fix issue with font test not building a valid querySelector.
7.18.1 | 2021-06-15
- Fix issue with
document.fonts.checkreportingfalsefor custom fonts. Code now also checks if thecheckAPI is properly supported by the browser.
7.18.0 | 2021-06-14
- Add
willRenderPresetToolbarhook to enable rendering custom preset toolbar items next to stickers overview. By default toolbar renders "Select image" button. - Add
formatproperty tocreateDefaultImageWriter, enables choosing thedesttype. Set to'file','imageData', or'canvas'. - Add support for ellipse shape in stickers.
- Add CSS custom properties to style modal.
- Improve "select image" icon.
- Improve draw quality of resized stickers.
- Improve setting of
classproperty when usingopenEditor, theclassproperty is now set to the editor modal instead of the editor itself. - Improve handling of custom node tree structures, can now define components with name. Currently supports
'Button'or'Dropdown'. - Improve handling of Escape key when in modal, now only closes the top modal not all modals.
- Improve
react-dokaTypeScript types. - Improve node tree api,
appendNodenow adds a node to a target node or nodelist, no longer acceptsidparameter. - Fix issue where getting editor UI props would not work.
7.17.1 | 2021-06-11
- Fix
backgroundImagenot working correctly on ellipse shape. - Fix
react-dokaTypeScript types mismatch.
7.17.0 | 2021-06-09
- Add
history.write(state?)to push a new state on the history array or create a new history entry based on the current state. - Add
history.get()to retrieve all history entries. - Add
history.set(entries?)to set the history array, combined withhistory.get()this allows complete restore of a previous image editing session. - Add guard against interaction problem on Chrome mobile.
7.16.0 | 2021-06-04
- Improve visibility of annotation selection tool by increasing the selection outline width and adding a slight shadow. This makes interacting with annotations on bright backgrounds easier.
- Fix issue where default font setting wouldn't render font.
- Fix problem where selecting lines wouldn't work correctly.
- Text tool now adds "auto" text field when tapping vs. text box when dragging to create a field.
7.15.1 | 2021-06-03
- Fix newly introduced properties missing from TypeScript definitions.
- Fix changing outline color not triggering redraw of interface.
7.15.0 | 2021-06-01
- Add
layoutDirectionPreferenceproperty to force'horizontal'or'vertical'layout for normal display size. Will revert back to 'auto' for very small display sizes. - Add
imageEditorAfterWriteImageproperty to FilePond Image Editor plugin, enables generating more than one output image, additionally uploading the original source image, and/or renaming the output file. - Improve registering of custom elements for
<doka-image-editor>and<image-input>now checks if custom elements were already defined. - Fix issue where zooming the browser window would draw interface and decoration shapes at incorrect positions until browser window was refreshed.
- Fix issue where filter preview images weren't fading out on exit filter util.
- Fix issue where toggling utils on and off would incorrectly redraw view.
- Fix issue where filter previews would stick around when filter util was disabled after being enabled earlier.
7.14.2 | 2021-05-28
- Fix further issues where depending on how the editor modal was implemented on React it would throw an error when closing the editor.
- Fix issue with
<image-input>where could not exit "waiting for image" state. - Fix issue where cordova
wwwfolder was missing from preset package. - Fix issue with image load error not being caught.
7.14.1 | 2021-05-27
- Fix issue where crop selection line color would sometimes not have correct color.
- Fix issue where depending on how the editor modal was implemented on React it would throw an error when closing the editor.
- Fix issue with new annotations being rotated incorrectly if the image was flipped.
- Fix issue with
<image-input>not working on Safari - Fix issue with
<image-input>edit button not working for dropped images. - Fix issue with
<image-input>not rendering properly when image input script was embedded before element.
7.14.0 | 2021-05-26
- Add
eraseRadiusshape style to erase tool definition, shapes in the given radius around the erase interaction will be removed, defaults to0. - Add
markupEditorToolSelectRadiusproperty to markup editor component, shapes inside the given radius will be eligible for selection, defaults to0. - Improve shape selection logic, now takes into account shape
strokeWidth. - Fix issue with auto text not rendering.
7.13.0 | 2021-05-25
- Improve missing doctype warning to make it more descriptive.
- Fix bug where
<image-input>component would not accept globally definedimageWriterprops. - Add templating to
<image-input>component to allow customisation of the empty, load, and process state.
7.12.2 | 2021-05-21
- Fix issue where placing too many stickers would exceed maximum WebGL active texture capacity and throw an error.
- Fix sticker list being too narrow.
- For default factories stickers will stick to image instead of crop context by default.
7.12.1 | 2021-05-20
- Fix line and foreground color missing from
willRenderCanvascall. - Fix TypeScript declarations for default factory functions, would still require
localeandimageReaderproperties. - Update
<image-input>component to useopenDefaultEditorfactory function instead ofopenEditor.
7.12.0 | 2021-05-19
- Add automatic software rendering detection. Browsers will switch to software rendering if the graphics card has been black listed by the browser vendor. This can happen if the video card drivers are outdated or if the graphics chip is too old and doesn't support the proper draw commands. If the browser is detected to be running in software rendering mode the editor will automatically lower its framerate to 20, will disable animations if the
animationsproperty is not set to'always', and will disable the finetune util clarity range input. This should lower the strain on the users system and allow for a less optimal but still suitable image editing experience. - Add
'loadabort'event when clicking the dismiss load error button. - Improve rendering performance by limiting interaction updates to one per frame.
- Fix issue where
overlayEditorwould not render in portrait aspect ratio. - Fix issue with annotations not rendering correctly when texture size is limited.
- Fix issue where loading incorrect plugins would throw error.
- Fix issue where crop dropdown values were added to the default editor factories.
- Fix issue with convolution matrix always being applied to preview render output.
7.11.1 | 2021-05-17
- Fix issue where passing options to
defineCustomElementsdid not set them on created editors.
7.11.0 | 2021-05-14
- Fix issue with ESC key press not triggering
'close'event. - Fix issue where
appendEditorwould throw if no target element supplied. - Fix further issues with image orientation on iOS.
- Add
appendDefaultEditor,appendDefaultEditors,openDefaultEditor,overlayDefaultEditor,defineDefaultCustomElements, andgetEditorDefaultsexports, these editor factories will create a default editor with all plugins enabled, default options set, and locale loaded, they won't require any customisation before use.
7.10.6 | 2021-05-12
- Fix issue where iOS versions 13 and earlier would reload page after loading a photo from camera.
- Fix
indexgetter missing editor history API.
7.10.5 | 2021-05-11
- Fix issue with image exif orientation not being corrected on Safari 12 and below.
- Fix issue with
canvasMemoryLimitbeing incorrectly applied on Chrome. - Fix issue with decoration text box not being scaled correctly.
7.10.4 | 2021-05-05
- Fix max canvas sizes being too large resulting in errors when zooming out when
imageCropLimitToImagewas set tofalse. - Add FilePond example to Svelte preset.
- Improve FilePond Plugin Image Editor to remove the edit button if WebGL is disabled in the browser.
- Improve FilePond Plugin Image Editor to still auto-process images if editing is disabled by lack of WebGL support.
7.10.3 | 2021-05-04
- Fix some Emoji showing as symbols instead of emoji.
- Fix overflow of active item in dropdown list when list panel has border radius.
- Remove some animations that still played when
animationswas set to 'never'. - Add
supportsWebGLhelper to exports.
7.10.2 | 2021-05-03
- Improve handling of invalid or missing image mimetypes when loading images from URL resources.
- Fix issue where text input modal would throw error in responsive design mode.
- Fix issue with line processing introduced in 7.10.1.
7.10.1 | 2021-04-29
- Improve handling of horizontal touchpad on Firefox.
- Improve parsing of legacy data.
- Improve accessibility of tabs and interactive controls.
- Mark touchstart and mousewheel event listeners as non-passive to prevent Lighthouse warning.
- Optimize SVG icons to use less elements.
- Optimize range input to use single path element instead of circle element for each dot.
- Optimize rendering of utils, will now wait with rendering util elements until util becomes active for first time.
- Fix issue with loading new image after annotating crashing the editor.
- Fix issue where line util would show arrow controls and would inherit arrow styles.
7.10.0 | 2021-04-26
- Improve alignment of text in crop toolbar buttons for Firefox and Safari.
- Support image zoom gesture with MacBook trackpad.
cropImageSelectionCornerStylecan now take"invisible"as value hiding the crop corner controls.cropWillRenderImageSelectionGuidescan be used to finetune image selection guide count and appearance.- Now renders additional image selection guides while rotating image.
- Move image selection guide rendering logic to crop plugin.
- Deprecate
undo(),redo(), andrevert()method and move tohistory.undo(),history.redo(), andhistory.revort(). - Add
history.lengthproperty to access current history length. - Fix issue with MacBook trackpad horizontal swipe not being smooth.
- Fix issue with revert api not working.
- Fix issue where new lines and arrows weren't recorded in history update.
7.9.1 | 2021-04-23
- Fix problem with IME keyboard blocking use dropdown after text input.
7.9.0 | 2021-04-20
- Add visual resizing of image preview to resize plugin.
- Add
cropIconSelectPreseticon property to crop plugin locale object. - Add
cropIconCropBoundaryicon property to crop plugin locale object. - Improve visual queue for auto calculated values of resize input fields, now has dashed outline if auto calculated.
7.8.1 | 2021-04-19
- Fix issue with crop corners not aligning with image when
enableUtilsset tofalse. - Fix issue with spacing of crop plugin tools when main toolbar disabled.
- Fix issue with renderer throwing an error when using remote images for stickers.
- Fix missing TypeScript definition for setting sticker groups.
- Add
--preview-border-colorcustom property for changing preview border color. - Add preset for Ionic 3 Angular.
7.8.0 | 2021-04-12
- Add
cropEnableRotateMatchImageAspectRatiooption, if set to'always'this will automatically rotate the crop rectangle with the image. The editor only does this if the image is rotated while fully zoomed out and the crop aspect ratio is set to custom or a rotated crop aspect ratio preset is available. Set to'custom'to only do this when in custom aspect ratio mode. For backwards compatibility reasons the default is'never'. - Improve handling of turning images. Now auto scales crop to fit image if crop was centered and at max size within image bounds.
- Improve handling of crop aspect ratio changes with rotated image. Now auto resizes new crop to fit image bounds.
- Improve exported default crop aspect ratio options, now features 4:3 and 3:4 aspect ratios.
- Fix issue with annotate and decorate toolbar items not being displayed since version 7.7.0.
- Fix issue with zoom control not working correctly.
- Fix issue with reset button of zoom control still resetting to 0 when zoom range was limited.
- Fix issue with rotation and zooming out not always working correctly when
imageCropLimitToImagewas set tofalse.
7.7.2 | 2021-04-09
- Fix issue with rotating while crop not being centered causing crop to zoom in too far.
7.7.1 | 2021-04-08
- Fix issue with stickers on Angular 7.
- Add Nuxt.js example project.
7.7.0 | 2021-04-06
- Add
beforeUpdateShapewhich enables preventing or altering shape updates. - Add individual filter exports for fine grain control over which filters are available. See documentation exports section for more details.
- Add individual finetune control exports for fine grain control over which color adjustment controls are available. See documentation exports section for more details.
- Add individual shape control exports to make customisation and configuration of the markup editor less verbose. See markup section in documentation for more details.
- Add helper methods to make customisation of markup editor easier.
- Add support for
widthonly text shapes. Height is automatically calculated. - Improve text shape selection, now tests against visual text shape instead of entire text box.
- Improve style of the text input box scrollbar.
- Improve handling of pasting text in the text input box.
- Improve TypeScript declarations file.
- Improve rendering of line end style shapes.
- Fix issue with auto repositioning of full size stickers.
- Fix issue with full size stickers not being scaled correctly.
- Fix issue with shape
opacityproperty not applying opacity to textures. - Fix issue with rotated text shapes causing a slight text misalignment.
- Fix issue with rotation inertia not being 100% smooth since 7.6.0.
- Fix issue with loading images smaller than minimum crop size. Now shows error message stating minimum image width and height.
- Fix issue with FilePond Image Editor plugin generating output image twice. Requires updating FilePond to 4.26.2.
- Fix issue with FilePond Image Editor plugin triggering re-upload of server image. Requires updating FilePond to 4.26.2.
- Removed unused image properties
noiseandperspectivefromimageStateobject. - Deprecated default exports for
plugin_resize_defaults,plugin_sticker_defaults,plugin_annotate_defaults,plugin_decorate_defaults, andcomponent_shape_editor_locale_en_gb.
7.6.0 | 2021-03-26
- Align preset templates with product page demo by loading annotate plugin instead of decorate plugin.
- Add sticker example code to the native and jquery preset templates.
- Add configuration properties to
storeproperty ofcreateDefaultImageWriter. - Add
image-inputcustom element, it automatically creates file input elements with edit, sync, and async upload functionality. - Fix issue with "react-doka" TypeScript declaration file.
- Fix issue with bottom padding for overlay rotation control being too big.
- Fix issue with float values in resize plugin width / height placeholders.
- Fix issue with rotate button double turning an image when one turn would be possible.
- Fix issue with zoom control showing
NaNif min crop size was same as image size.
7.5.5 | 2021-03-22
- Fix FilePond Image Editor plugin TypeScript declaration file.
- Fix React and Vue FilePond presets.
- Fix missing locale labels in locale folder.
7.5.4 | 2021-03-19
- Fix issue where crop controls weren't centered when only one util plugin was active.
- Fix issue with editor border line looking a bit odd when not centered.
7.5.3 | 2021-03-18
- Fix issue where converting a JPEG to a PNG would result in an invalid image.
- Fix issue with stickers button showing in annotate and/or decorate plugin even though no sticker presets were defined.
- Fix issue with canvas memory limit not being respected on browsers that support OffscreenCanvas.
- Fix issue with editing a set of files in Uppy.
- Fix issue where undefined value for
filterresulted in an error when processing the image. - Fix issues with TypeScript definitions not matching API.
- Fix issue with
resizeMinSizeandresizeMaxSizenot being applied correctly when switching between size fields.
7.5.2 | 2021-03-16
- Fix issue where processing a PNG would throw an error.
7.5.1 | 2021-03-15
- Fix issue with
resizeMinSizeandresizeMaxSizebeing applied too soon. - Fix issue with navigation bar overlapping revert button.
7.5.0 | 2021-03-14
- Add color temperature control to finetune plugin.
- Add better range indicators to sliders, now range from -100 to 100.
- Add shape
fontStyleproperty, set to'italic'to render italic font. - Add shape
fontWeightproperty, set to'bold'to render bold font. - Add shape style control to switch between font weights and styles simultaneously.
- Add center indicator to range input.
- Add drop image on top of editor to load new image, toggle with
enableDropImage, is disabled by default. - Add test for Document Type Declaration before starting the editor.
- Add
enableButtonCloseto editor base UI, set totrueto enable close button, is automatically set totruewhen usingopenModal. - Add
closepublic method to base UI, triggers 'close' event. - Add experimental
willRenderNavhook which allows manipulation of the main navigation toolbar. - Improve rendering of shape style controls, now animated.
- Improve positioning of shape controls, now limited to stage.
- Improve rendering of disabled buttons, now show default "arrow" cursor instead of "hand".
- Fix
strokeWidthbeing updated incorrectly when color was changed. - Fix issue with internal events not being correctly removed.
- Fix issue with
NaNvalue in resize util. - Fix issue with shape style control appearing underneath shape manipulator corners.
- Fix issue with filter previews not rendering.
- Fix issue where JPEG image header wasn't copied over to output image.
- Rename preset
libfolder tolocal_modules.
7.4.4 | 2021-03-05
- Fix text missing from output.
- Fix coloring of text shapes without width.
7.4.3 | 2021-03-04
- Fix center alignment of single row stickers.
- Fix internal shape props being outputted in imageState.
- Fix error when processing generating output data for Blob input.
- Reset scroll position in sticker groups when switching between groups.
- Improve Cordova preset with camera and photo library selection.
7.4.2 | 2021-03-01
- Fix missing calls to
handleEventwhen usingopenEditor. - Fix editor not firing progress events.
7.4.1 | 2021-02-26
- Fix problem with iOS crashing while generating preview of big image.
- Fix problem with
calc()statements missing parentheses. - Fix issue with Server Side Rendering.
- Fix issue with Next.js production build.
- Fix issue with FilePond Image Editor plugin not removing file when closing editor.
- Fix problem with arrow styles not rendering correctly in preview.
- Fix missing vertical flip icon in shape controls.
- Add Cordova preset template.
- Add locale folder to package.
- Improve load speed of images in FilePond image editor plugin.
- Optimize package size.
7.4.0 | 2021-02-23
- Add shape manipulation events that were available in v6 see Shape and Event docs for more information.
- Add sticker thumbnail hook.
- Add sticker
disabledstate option. - Add sticker group
disabled,icon, andhideLabeloptions. - Add tabs for sticker groups.
- Add tool
disabledstate option. - Add missing feature error message.
- Add
preprocessImageStatehook tocreateDefaultImageWriter. - Fix text color also coloring Emoji.
- Fix double tapping text input not showing keyboard to edit text on iOS and Android.
- Fix line end square not being drawn.
- Fix line end output being slightly different from preview.
- Fix PostCSS error recognizing calc statements as require parsing.
7.3.0 | 2021-02-17
- Improve cleaning up editor on window unload.
- Improve how modal controls affect editor height on iOS.
- Prevent virtual keyboard from resizing window view when using
openEditor. - Improve text input control interface on iOS and Android.
- Add live preview when editing text.
- Fix problem with text input on Android and iOS.
- Fix uncaught error when an image could not be loaded.
7.2.2 | 2021-02-12
- Improve Vue2 components so attribute updates are caught correctly.
- Improve crop rectangle size calculations when switching between aspect ratios.
- Improve Next.js project set up to use CSS modules.
- Improve rendering of shape selection when switching view while a shape is selected.
- Add press escape key to close Image Editor modal.
- Add
stickerEnableSelectImageprop to enable / disable custom sticker selection. - Add FilePond implementation example to Vue 3 preset.
- Add FilePond implementation example to React and React TypeScript presets.
- Add CSS Modules doka.module.css file for use with Next.js.
- Fix issue where loading a new image would crash the editor.
- Fix crop rectangle not animating after using scroll wheel to zoom out when already zoomed out.
- Fix rotator anchor rendering in the wrong position when holding shift.
- Fix line snapping in the wrong direction when holding shift.
7.2.1 | 2021-02-08
- Fix issue with drawing rectangles in annotation view on normal displays.
- Fix issue where text color could was always black.
- Fix issue where outline for rectangles wasn't being drawn.
- Fix problem with events not being fired correctly in Vue v2 components.
- Fix issue on Vue where assigning of initial props caused settings to be applied incorrectly.
- Fix problem with annotation stickers placed incorrectly on rotated image.
- Fix load event firing twice when loading images shortly after each other.
- Fix PNG aliased transparent pixels.
- Add
postprocessImageDatahook tocreateDefaultImageWriter.
7.2.0 | 2021-02-04
- Add line snapping, hold shift to draw straight lines or to draw lines at a 45 degree angle.
- Add Vue 2 example project and components.
- Optimize vertical space use on iOS Safari.
- Optimize creation and memory usage of canvas elements.
- Optimize interaction with hitboxes small shapes.
- Fix
imageCropincorrectly applied when cropLimitToBounds was set tofalse. - Fix annotations being drawn outside the image bounds on the output image.
- Fix imageBackgroundColor not being applied to pixels outside of imageData.
- Fix problem where buttons in shape popup menu could not be clicked when under top nav bar.
- Fix issue with opening browser dev tools and the keydown state not being released.
- Fix contextmenu causing events to be attached incorrectly.
- Fix filter being applied to image background fill.
- Fix blending of image effects with image data being slightly incorrect.
- Restructured Angular and Vue packages and preset folders.
7.1.0 | 2021-01-29
- Fix issue with tiny gaps in sharpie lines on Safari.
- Fix
cornerRadiusnot applied to rectangle in output image. - Fix preview rendering of rectangles that had
cornerRadius,backgroundSize, andbackgroundImageapplied. - Fix
cornerRadiusoverlapping if larger than half rectangle width. - Dramatically improve text preview update speed when changing text color.
- Lower compressed package size by 2KB by optimising GLSL shaders.
- Optimise draw performance of rectangles and text shapes.
- Fix Angular minimum required version being 11.
- Fix issue with SSR and how the
<doka-image-editor>was defined. - Fix
imageBackgroundColornot being applied in preview and output. - Improve render quality of colors in color picker buttons.
- Add auto setting of shape
strokeWidthifstrokeColoris changed in editor. - Add Next.js preset project.
- Add Angular View Engine preset project for Angular versions 8 and lower.
7.0.2 | 2021-01-25
- Fix negative clarity value not blurring output image.
- Fix problem with restoring annotation/decoration state with text shapes and image shapes.
- Fix rotated text not rendering.
- Fix problem with backgroundSize 'cover' and 'contain' not rendering correctly.
- Fix performance of multiline text resizing.
- Fix clipping of multiline text in output image.
- Fix handling of returns in auto text blocks.
- Fix not being removable with eraser tool.
- Fix clarity image preview showing black or white lines on iOS and M1.
- Fix drag dropping stickers not working on mobile.
7.0.1 | 2021-01-22
- Fix dragging and dropping stickers only working in annotation mode.
- Fix image stickers not showing correctly.
- Fix drawing emoji stickers not working sometimes.
- Fix stickers being added while dragging over sticker thumbnail.
- Fix stickers not being rotated rotated correctly when adding to a rotated image.
- Fix clarity adjustments resulting in a black image.
- Fix sticker presets
widthandheightnot being picked up correctly. - Fix circular shapes being incorrectly drawn on iOS.
- Fix solid arrows not being drawn to output image.
- Fix solid arrows not being drawn correctly on retina viewports.
- Fix arrow tool missing arrow icon.
- Fix stickers not being loaded correctly on Safari.
- Fix automatic font-stack filtering for font family dropdown.
- Fix Firefox navigating to previous page when trying to remove a shape with backspace key.
- Fix decoration and annotation scale being incorrect when setting
imageTargetSizeproperty. - Fix menu buttons sometimes not responding to click.
- Fix problem with free drawing circles because of incorrect tap gestured detection.
- Fix android dragging of scrollable regions not working smoothly.
- Lowered default size for sharpie and text.
- Add
createDefaultImageOrienter, use instead ofimageOrienter. - Improve scroll container performance.
- Removed preset util defaults from annotate and decorate tools.
7.0.0 | 2021-01-15
Version 7 is a complete rewrite of the image editor. The look and feel is different and it is not backwards compatible. You can convert version 6 data to a version 7 compatible format using the legacyDataToImageState method exported by the image editor module.
See below for a short overview of some of the new features and improvements.
- Add landscape view to make better use of viewport space
- Add improved viewport resizing
- Add undo/redo and reset functionality
- Add shape drawing API for drawing custom elements on top of the preview
- Add zoom control
- Add new render engine
- Add vignette control for adding a retro look n' feel
- Add gamma control for gamma correction
- Add clarity control for slightly sharpening and blurring images
- Add Custom Element
- Add support for tree-shaking
- Add drag/drop of stickers
- Add uploading of custom stickers
- Add rotating of shapes
- Add z-ordering of shapes
- Add duplicating shapes
- Add various arrow end styles
- Add text wrapping
- Add improved color selection
- Add image annotation
- Add more filters
- Add stickers to draw utils
- Add separate sticker util
- Add headless processing of images
- Add improved FilePond integration plugin
- Add improved Dropzone integration plugin
- Add improved Uppy integration plugin
- Add improved jQuery, React, Angular, Svelte, and Vue adapters
- Fix issue with text not rendering correctly.
- Fix position of text input box that wasn't centered.
- Fix issue where reset or undo would restore beyond initial imageState.
- Fix issue where loading a new image would not work.
6.20.0 | 2020-12-21
- Add gold version of version 7.0, this version is ready for public use
6.19.0 | 2020-12-09
- Add second beta version of version 7.0
- Add
beforeDeselectMarkup(currentItem, nextItem)which is called when A markup item is deselected, returnfalseto prevent deselection, returntrueto allow deselection.
6.18.0 | 2020-11-19
- Add first beta version of version 7.0
- Add
afterUpdateStickerItem(button, data)which is called when the editor updates the sticker thumbnail. Allows updating the sticker thumbnail HTML. - Add
beforeAddMarkup(markupItem)hook which is called before a markup item is added, returnmarkupItemorfalseto prevent adding the item. - Add
beforeRemoveMarkup(markupItem)hook which is called before a markup item is removed, returnmarkupItemto continue orfalseto prevent removing the item. - Add
onselectmarkup(markupItem)callback which is called when a markup item has been selected. - Add
onremovemarkup(markupItem)callback which is called when a markup item has been removed. - Add
onaddmarkup(markupItem)callback which is called when a markup item has been added.
6.17.0 | 2020-10-28
- Add React-Dropzone integration example.
6.16.1 | 2020-10-26
- Fix issue with
filterproperty not being applied when set to string. - Fix issue where markup dropdowns would not select active styles.
- Fix issue where narrow viewport menu was rendered incorrectly when only one util was active.
- Fix issue where loading a new image wasn't possible after a previous image failed to load.
- Fix issue where Firefox would sometimes throw an error when loading a Blob
6.16.0 | 2020-09-09
- Add
beforeResethook to allow cancelling a reset. - Fix issue where the Dropzone adapter would throw an error if the editor rejected an image file.
6.15.5 | 2020-09-04
- Fix issue where setting the
outputDataobject as new options would not recreate previous state.
6.15.4 | 2020-08-21
- Fix issue where clicks on filters or stickers would sometimes not register.
6.15.3 | 2020-08-12
- Fix issue where clicking outside of a dropdown would throw an error.
6.15.2 | 2020-08-10
- Fix issue with some buttons not working when testing on simulated iOS devices in Chrome DevTools.
6.15.1 | 2020-08-07
- Fix issue where TypeScript definitions were missing in Angular package.
6.15.0 | 2020-07-29
- Adjust hitboxes on markup resize controls so small items can be dragged more easily.
- Hide edge resize controls on small symbols.
6.14.0 | 2020-07-27
- Improve determining image mime type and file name of images loaded from URLs.
- Fix issue where draw input could be enabled in sticker util view.
- Upgrade Angular example project to version 10.
6.13.2 | 2020-06-25
- Fix issue where elements with fixed values in sticker markup were not rendered correctly.
6.13.1 | 2020-06-22
- Fix issue where markup images on remote servers would trigger tainted canvas error.
6.13.0 | 2020-06-16
- Add prevent swipe on edge of screen navigation on iOS 13.4+.
- Fix issue on IE11 where
containswasn't properly polyfilled.
6.12.0 | 2020-05-29
- Add Sticker util. By default it's not enabled. Add
'sticker'to theutilproperty array to enable it. - Add
stickersproperty. See documentation for details on how to set the available stickers.
6.11.0 | 2020-05-28
- Add
beforeLoadImagehook to allow custom file validation. Receivesfileobject, should return a Promise. Resolve withfileif everything is fine, reject with error status code if image should be rejected. SetlabelStatusLoadImageErrorto a function to show a custom status message, the function receives the error status code and should return the label to show in the status bubble. - Fix issue with border color of markup elements that had a fill style.
6.10.1 | 2020-05-14
- Fix issue in TypeScript definitions,
editmethod can resolve withnull. - Fix issue on IE11 where menu/utils would not render after switching between them.
- Fix issue with Angular example project not working on IE11 due to compiler problem.
6.10.0 | 2020-05-04
- Update jQuery File Upload demo to use the
editfunctionality in the fileupload-ui library.
6.9.2 | 2020-05-01
- Fix issue where image wasn't destroyed when loading a new image to an existing editor instance resulting in a memory leak. This could cause problems with rendering on iOS or errors related to a missing WebGL context.
6.9.1 | 2020-04-30
- Fix issue with IE11 incorrectly loading DataURL strings.
6.9.0 | 2020-04-28
- Add
onreadyevent which fires when a loaded image is first presented. - Fix issue where
sizeproperty would override FilePond input size.
6.8.1 | 2020-04-23
- Improve handling of custom markup, now assigns unique id to markup item if no id set.
- Fix issue where server side rendering would throw an error.
6.8.0 | 2020-04-15
- Add auto-detection of image-orientation functionality now present in iOS Safari 13.4 and Chrome 81, this prevents incorrect rotation of JPEG images that contain orientation EXIF info.
- Add
disableDokaImageEditoroption to jQuery File Upload package. - Improve defensive CSS styles for SVG elements.
6.7.0 | 2020-03-30
- Add
allowButtonReset, set tofalseto disable the reset button. - Fix issue where
sizeproperty would not work when 'resize' util wasn't active. - Improve defensive styles to prevent collisions with other style frameworks.
6.6.0 | 2020-03-23
- Improve hitboxes of paths, lines and markup anchor points for easier handling on small viewports.
6.5.5 | 2020-03-21
- Fix issue with error thrown while loading preview editor.
6.5.4 | 2020-03-19
- Improve defensive styles to prevent collisions with other style frameworks.
- Fix issue where setting the
cropproperty would reset other properties. - Fix placement of new markup elements to prevent them falling outside of image bounds.
6.5.3 | 2020-02-28
- Fix issue where accessing localStorage would throw an error if not available due to privacy restrictions.
6.5.2 | 2020-02-24
- Fix issue where IE11 would throw an error when loading dataURIs.
6.5.1 | 2020-02-14
- Fix issue where dragging and resizing was no longer working on webkit browsers after scrolling the view on a touch screen.
- Fix issue where
outputCanvasSyncTargetwouldn't render the correct image on retina viewports. - Fix issue introduced in version 6.5.0 where
setDatawould reset the view.
6.5.0 | 2020-02-13
- Add
outputCanvasSyncTargetproperty, set to a canvas element to draw the current webgl view to the target canvas. - Fix issue where setting new markup would not correctly clear existing markup.
- Fix issue where when the width of an inline editor was exactly 600 pixels the cancel and reset button would both be visible.
6.4.3 | 2020-02-04
- Fix issue where Firefox 58 and earlier would freeze when generating a preview image.
- Fix issue where
cropMaskwouldn't redraw when updated.
6.4.2 | 2020-01-30
- Fix issue where a race condition could happen when focus was moved outside of the editor.
- Fix issue where close button on processing status message would not show when rendering the editor inline.
6.4.1 | 2020-01-28
- Fix issue where new filter logic would not be applied to filter previews and output image.
6.4.0 | 2020-01-27
- Add
rejecthandler toafterCreateOutput, hook can now be used to (for example) upload files and communicate the upload state to the user. - Fix issue where status bubbles were no longer animated.
- Fix issue where filter color matrix would not correctly apply alpha values.
6.3.1 | 2020-01-17
- Fix issue with response headers (when loading an image from URL) not being parsed correctly.
6.3.0 | 2020-01-14
If you're overriding default styles this update might impact rendering and you might have to prepend your custom styles with .doka--root to make them more specific.
- Add
cropAllowResizeRect. Set tofalseto disable resizing the crop rectangle. Useful for when you only want to allow users to scale and rotate the image. - Add markup clipping to prevent markup from being rendered outside of the image crop area (on modern browsers only).
- Improve defensive styles to prevent collisions with overly generic style selectors.
- Improve profile examples to include file input elements for replacing existing images.
- Fix issue where Safari would incorrectly render the crop size indicator on non-retinate displays.
- Fix issue where
cropResizeMatchImageAspectRatiowould incorrectly zoom in whenimagePreviewScaleModewas set to'crop'.
6.2.0 | 2020-01-06
- Add
imagePreviewScaleMode, set to'crop'to use actual pixel size of crop for preview image. Set to'image'to use pixel size of source image for preview image. Default is'stage', fits preview to stage which matches the current behavior. - Improve rendering of keyboard indicator on top of image, now only shows when navigating to image preview with tab key.
- Fix issue where
markupUtilselection wouldn't work on init. - Fix issue with
allowImageFlipVerticalnot working correctly. - Fix issue with color selection util not rendering correctly.
- Fix issue where crop rectangle edges would not fully cover image.
6.1.0 | 2020-01-02
- Add custom color selection util to the markup editor. Disable by setting
markupAllowCustomColortofalse. - Improve main menu style for narrow viewports. The corners are now rounded and the main action button has a prominent color.
6.0.0 | 2019-12-30
Markup style defaults properties have been renamed. This is a breaking change and therefor the major version number has changed as well. Previously the default styles were set using the index of the option in the linked style options list. Starting from this version the value is set using the actual value instead of the index.
This is only a breaking change if you've set different default values for the markup styles.
- Add draw tool to markup view.
- Set default markup style values using
markupColor,markupFontSize,markupFontFamily,markupShapeStyle, andmarkupLineDecoration. - Add
markupDrawDistanceproperty, this controls the smoothness of the draw line. - Add auto switching between a dark and bright selection highlight based on the shape colors.
- Add label properties for markup utils.
- Fix issue with image head not being copied correctly when outputting a new image.
5.13.0 | 2019-12-20
- Add more information to
updateevent. - Add
cropAllowRotateto toggle rotation control in crop util. - Add
utilproperty to programmatically set the current active util. - Fix issue where Chrome would throw error when accessing custom response headers.
- Improve
setDatacall, can now apply output data object.
5.12.0 | 2019-12-16
- Add Svelte adapter components.
- Fix issue where setting aspect ratio using the API resulted in an error message.
5.11.2 | 2019-12-12
- Fix issue with SSR introduced by 5.11.1
- Fix issue with dragging the editor window on iOS.
5.11.1 | 2019-12-12
- Fix issue where adding multiple color filters would not render a scrollbar.
- Fix issue where dragging the color adjustment tools would sometimes cause the knob to snap back to center after release.
- Fix issue with IE throwing an error during loading and processing status.
5.11.0 | 2019-12-09
- Add conditional compilation statements to MJS and SCSS source files. Add conditional compilation to your build script to optimize the output files based on which editor utils are enabled (can save up to 30%).
- Fix issue where scroll instruction wasn't aligned to pixel grid resulting in blurred text on non-retina displays.
- Fix issue where mousedown inside the modal and mouseup outside the modal would close the editor modal.
5.10.1 | 2019-12-02
- Fix issue where the editor would throw an error on removal due to missing MODIFIER_KEYS variable.
5.10.0 | 2019-12-02
- Add feature where tapping the modal overlay will close the modal.
- Add progress indicator to load image status.
- Add
afterCreateOutputwhich allows modifying the output and updating the status message in the editor. - Add
labelResizeWidth,labelResizeHeight, andlabelResizeApplyChangesproperties to control labels in resize view. - Add crop size indicator values are now animated when zooming in and out.
- Add
cropAllowInstructionZoom, when set totruethis will show a small message to the user explaining how to zoom in and out (it'll only appear when the crop is centered and after two seconds of interaction). When the user scrolls or zooms in/out with the touchpad the message is hidden and will not re-appear (the editor will uselocalStorageto remember it has shown the message). The editor will use the value in thestorageNameproperty as the name for thelocalStorageentry. - Use
labelCropInstructionZoomto change the label of the crop instruction bubble. - Update resize modifier key handling, when the array of key codes is empty the custom resize functionality is disabled.
- Fix issue where clicks on menu wouldn't work while the menu bar was fading into view.
- Fix issue where scrollbars where enabled on devices that showed no scrollbars causing a slight horizontal jump when opening the editor.
- Fix issue where current and target aspect ratio wasn't calculated correctly resulting in weird zooming when switching between utils.
- Fix issue where destroying the editor would throw a removeEventListener error when
allowDropFileswas enabled.
5.9.0 | 2019-11-08
- Update
labelStatusLoadImageErrorto allow both a function and a string to be assigned. The function receives the image load error, the string returned by the function is presented in the status bubble shown by the editor to the user. - Fix issue where
getDatawould not throw an error when called immediately after init. - Fix issue where status layer would be rendered outside of the editor when in modal mode.
5.8.0 | 2019-10-29
- Add option to set
widthandheightvalues to the aspect ratio dropdown. This turns the dropdown into a list of image size presets. When size values are used the aspect ratio is calculated based on the supplied dimensions. - Improve rendering performance and CSP compatibility by using
cssTextinstead ofsetAttributefor updating view layout.
5.7.0 | 2019-10-10
- Add
cropResizeMatchImageAspectRatio, when enabled this will automatically adjust the crop aspect ratio to match the image aspect ratio if the user zooms out. Only works if the aspect ratio is set to "free".
5.6.0 | 2019-10-08
- Add
cropAllowToggleLimitto enable the "Crop selection" button. - Add
cropLimitToImageBoundsto toggle limiting the crop selection to the image bounds or allow cropping outside of the image. - Add
outputCanvasBackgroundColorto control the color of the canvas when a transparent PNG is converted to JPEG and when cropping outside of the image bounds. - Add
outputCorrectImageExifOrientationto toggle correcting image EXIF orientation on and off, this is on by default. - Fix issue where dragging the crop rectangle and scrolling the mouse wheel at the same time would throw an error.
If you are using the editor with FilePond, please update the following plugins
- Image Edit to at least 1.5.0
- Image Preview to at least 4.5.0
- Image Transform to at least 3.5.0
5.5.1 | 2019-09-26
- Fix issue where IE11 would not load images due to locked inner draw loop.
5.5.0 | 2019-09-24
- Fix issue with missing handler in Angular profile demo.
- Fix issue with Angular production build not working on example project, see example project README_DOKA.md for new installation instructions.
- Add
onloadstartcallback.
5.4.1 | 2019-09-19
- Fix issue with zoom scroll not working correctly within crop rectangle with inline editor.
- Fix issue with the editor instantly focussing the first view on load.
- Fix issue with color tools alignment.
- Increase opacity of image overlay on all but crop view.
- Lower height of crop and markup toolbar to create slightly more room for image.
5.4.0 | 2019-09-17
- Add
allowBrowseFiles, click on editor to upload new file while awaiting file input. - Add
cropAllowImageFlipHorizontalandcropAllowImageFlipVerticalto toggle flip buttons on and off. - Add
cropAllowImageTurnLeftto toggle rotate left button. - Add
pointerEventsPolyfillScope, set to 'document' to polyfill pointer events at the document level instead of the editor level, this will allow dragging outside of the editor on Safari (and other browsers lacking PointerEvent support). - Fix issue with WebGL error being thrown on black listed graphic cards/drivers.
- Fix issue with scroll zoom not working when scrolling towards an already initialised editor.
- Fix issue with weird image outline rendering issues on Firefox.
- Fix issue where setting the
classNameproperty would not assign the class to the editor root element.
5.3.1 | 2019-09-12
- Improve WebGL performance on older devices by slightly lowering the canvas size. The editor now uses the
devicePixelRatiotimes.75. - Fix issue where multi-touch interaction on the crop rectangle would throw an error.
- Fix issue where releasing a drag operation on a markup shape would throw an error.
5.3.0 | 2019-09-06
- Add
cropResizeScrollRectOnlyproperty to limit scroll resizing to the crop rectangle. - Fix issue where Edge would throw an error related to
toColormethod when closing the editor.
5.2.1 | 2019-09-03
- Add "WebGL required" message to notify users when WebGL has been disabled on their browser.
- Fix issue where main util menu wasn't always perfectly aligned to the center.
- Fix issue where "Awaiting image" message would not show.
- Fix issue where aspect ratio dropdown would show for a small moment.
- Improve rendering of resize view.
- Improve callbacks in TypeScript declaration file.
5.2.0 | 2019-09-02
- Add Angular adapter components.
- Fix problem with
cropAspectRationot updating the crop aspect ratio. - Fix TypeScript declaration file mismatch with standards.
- Fix issue with crop size indicator throwing an error.
- Fix issue with resize view not re-rendering correctly.
- Improve TypeScript declaration file with better interfaces.
5.1.3 | 2019-08-29
- Fix problem with double destroy method in GL layer.
- Fix problem with hiding util buttons instead of removing them completely.
- Fix problem where src scss file was not up to date.
- Improve CSS to prevent style collisions.
5.1.2 | 2019-08-27
- Fix issue with WebGL background gradient flickering on certain hardware.
5.1.1 | 2019-08-27
- Fix problem with multitouch resizing not working.
5.1.0 | 2019-08-26
- Improve rendering performance by switching to WebGL powered image layer.
- Re-render when returning to editor from another tab.
- Improve release of canvas memory on Safari.
- All kinds of small performance improvements to limit use of CPU.
- Add more error logging to process method.
- Add keyboard navigation indicator icon.
- Fix issue where pressing backspace to remove markup on Firefox would navigate away from the page.
- Fix problem where creating the output image didn't work on iOS 10.
5.0.2 | 2019-08-22
- Fix additional issue with shapes not loading after previous fix.
- Fix problem with removing locked shapes.
5.0.1 | 2019-08-22
- Fix issue where removed markup item was still rendered to canvas.
- Fix issue where hidden error message would be thrown when closing the editor modal on Firefox.
5.0.0 | 2019-08-15
Although the major version number has been changed, this version is mostly backwards compatible. The only breaking change is that now all utils except the resize util are enabled by default.
If you've integrated the editor with FilePond, please make sure you update the FilePond Image Transform, Image Preview, and Image Edit plugins.
- Add markup support.
- Add support for predefined markup.
- Add support for controlling which markup elements can be modified / edited.
- An extensive set of performance improvements.
- Improvements to examples templates.
- Fix
cropAspectRatioOptionsthrowing an error when set to an empty array. - Other small bug fixes and improvements.
4.8.3 | 2019-08-07
- Fix additional problem with image processing step that caused a crash when no output size was set.
4.8.2 | 2019-08-07
- Fix problem where Vue component didn't render correctly.
- Update React example to include initial crop aspect ratio.
4.8.1 | 2019-08-06
- Fix problem where output upscale setting crashed image processing step.
4.8.0 | 2019-08-05
- Add output image width and height to
output.data.imageproperty. - Fix polyfill URLs in file upload library integration examples.
4.7.2 | 2019-07-31
- Fix
ResizeModeTypeScript property. - Add
outputCanvasMemoryLimitto TypeScript files. - Add
tslint:disableto Vue components to silence tslint warnings. - Add very basic
createDoka.d.tsfile so the editor Vue components are seen as Components.
4.7.1 | 2019-07-24
- Recover Vue FilePond image editor integration example.
4.7.0 | 2019-07-24
- Fix issue where iOS canvas memory limit could be exceeded. Add the
outputCanvasMemoryLimitproperty which is automatically set to 16 megapixels on iOS devices. The editor will automatically scale output canvas size on these devices to prevent transparent output images.
4.6.4 | 2019-07-23
- Improve defensive CSS styles for better compatibility with CSS frameworks.
- Fix problem where EXIF info wasn't copied when
outputStripImageHeadwas set tofalse.
4.6.3 | 2019-07-23
- Fix style problem with React FilePond image editor integration example.
- Fix problem with Vue demo's throwing error when loading Web Workers.
- Add Vue FilePond image editor integration example.
4.6.2 | 2019-07-11
- Fix issue where filter thumbnail was still skewed in some situations.
4.6.1 | 2019-07-08
- Fix issue where a small canvas element was appended to the document body.
4.6.0 | 2019-07-02
- Add
initialStateproperty to set state to reset to when reset button is pressed. Set tonullto reset to the default editor state. - Add React FilePond image editor example integration.
- Fix issue where filter previews showed a skewed image.
- Fix issue where setting the
sizeproperty would throw an error. - Fix issue where a
sizeproperty update would not hide resize percentage indicator. - Improved performance of filter preview rendering.
4.5.2 | 2019-07-01
- Add color transitions to various parts of the editor for nicer theme switching.
- Add jQuery adapter.
4.5.1 | 2019-06-22
- Fix
cannot read property scale of nullerror.
4.5.0 | 2019-06-21
- Add conditional close button to image error status message when in fullscreen mode so user can close the editor when an image fails to load.
- Optimise and speed up image resize logic.
- Fix rendering of cancel/exit button icon on Safari.
- Fix problem where
outputUpscalewhen set tofalsewould sometimes skip applying image filters. - Fix problem with wrapping of utility tabs.
4.4.2 | 2019-06-20
- Fix issue with minimum crop size not being calculated correctly for big images.
- Fix issue with updating the available utils property.
4.4.1 | 2019-06-17
- Fix issue where flipping the image preview would hide it.
- Fix style collision with normalize.css.
- Fix style collisions created by blanket
* { box-sizing: border-box; }.
4.4.0 | 2019-06-13
This update adds the bright theme and a color control panel.
All color values in CSS are now accessible through CSS Custom Properties, see documentation for a detailed guide. CSS Custom Properties are supported in all major browsers except Internet Explorer 11, it will still have to be styled "manually".
- Set
--doka-invertto100%on the.doka--rootelement to set bright theme mode. - Add line crop corner style. Set the
styleCropCornerto'line', default is'circle'. - Add brightness, contrast, exposure, and saturation controls. Enable by adding the
'color'util to theutilsproperty. - Improve resize preview by taking into account the
devicePixelRatiowhen calculating the image preview width and height. - Slightly increase distance between utility buttons and crop rectangle, this results in less miss clicks.
- Fix issue where crop icon color would not be based on current color.
- Removed rounded corners from size indicator, this makes it look more distinct from the crop corners. Set
--doka-size-indicator--radiusto9999emto restore rounded corners.
4.3.3 | 2019-06-06
- Fix issue where IE11 would throw an error because of using
Number.isNaNinstead ofisNaN. - Fix issue where crop rectangle size could fall below minimum image size when switching from free to a fixed ratio crop.
- Fix issue where crop rectangle size could fall below minimum image size when free cropping a very small image.
- Fix issue when selecting crop aspect ratios that would result in invalid crops for very small images by hiding the invalid crop ratios.
4.3.2 | 2019-06-05
- Fix issue where native examples no longer worked on IE11 because polyfill was loaded incorrectly.
- Fix issue where min crop size was not respected while dragging corner crop controls.
- Fix issue where filter thumbnail images were skewed when image EXIF orientation header was set.
- Add "src" folder. This folder contains the merged source files. The JavaScript is written in ES6, this will need to be transpiled to function. The CSS files are written in Sass so will need to be converted to CSS to function.
4.3.1 | 2019-05-31
- Fix issue where native examples did not load filters.
- Fix issue where font weight of buttons could be easily and accidentally overruled by other styles.
- Fix issue with internal paint loop not handling inactive tab state correctly.
4.3.0 | 2019-05-28
- Fix issue where tab buttons would not enforce the editor
line-height. - Fix issue where image error status bubble would appear in bottom right corner on Safari 12.
- Fix problem where document body would receive min height of 512 pixels.
- Add image information object to
onloadevent. - Add
onupdateevent which shares the current crop width and height. - Add
allowPreviewFitToViewoption, set tofalseto prevent the editor from upscaling the preview image. - Update example projects to include filter and resize utilities.
4.2.0 | 2019-05-24
- Add filters, enable by adding the
'filter'string to theutilsproperty. - Redesigned the Crop and Resize utility icons.
- Fix issue where dragging an image would throw an error on Safari.
- Fix issue where bottom safe area on iOS was always active, now only activates when Safari footer menu is not visible.
- Fix issue where outlines were invisible in high contrast mode.
- Fix issue where SVG elements were focusable on IE and Edge.
- Update TypeScript definitions.
4.1.2 | 2019-05-09
- Fix issue where React module was a build target instead of the original source files.
4.1.1 | 2019-05-02
- Fix issue where certain aspect ratios could overflow the minimum and maximum image size.
4.1.0 | 2019-04-26
- Fix issue where resize and crop size width and height were reported incorrectly for large images.
- Fix issue where scrollwheel was still available in resize view.
- Fix issue where degree character would render incorrectly by replacing it with its HTML entity
°. - Fix issue where rotating the image 180 degrees and then flipping it would in not flip along the correct axis.
- Fix issue where typescript definitions for
getData,setData, andsavewere malformed. - Improved rendering of crop/resize image edges, they now better overlap with the image.
- Add
onloaderrorcallback to programmatically handle image load error status. - Add
afterCreateBlobhook to allow modifying the Blob data before it's outputted by the editor.
4.0.3 | 2019-04-11
- Fix issue where loading indicator view would break outside of editor when editor was inlined on the page.
- Fix issue where status message would unevenly draw background color of editor.
- Fix issue where zoom button would be clickable while hidden.
- Fix issue where settings the aspect ratio to free was no longer possible after loading an image with a given aspect ratio.
- Update TypeScript doka.d.ts file with new options added in version 4.
4.0.2 | 2019-04-08
- Fix issue where editor would not clean up properly when exiting full screen mode.
4.0.1 | 2019-04-04
- Add feature where turning is automatically done by 180 degree intervals if 90 degree does not fit the required minimum crop size.
- Fix issue where crop mask overlay would log a series of errors.
- Fix issue where crop mask overlay animation would not sync up with image and crop animations.
4.0.0 | 2019-04-04
This is a major release as internally a lot of elements have changed, still it shouldn't break anything. If you're targeting the editor inner elements to apply different styles then the related CSS selectors might have to be updated.
- Add Resize util. Enable by setting the
utilsoption to['crop', 'resize']. The array also controls the order of the menu items. - Add
size,sizeMin, andsizeMaxoptions to control image output size. - Add size indicator in crop view, toggle with
cropShowSize, default isfalse. - Change
cropMinImageWidthdefault value to1. - Change
cropMinImageHeightdefault value to1. - Add
labelButtonUtilCropoption. - Add
labelButtonUtilResizeoption. - Improve animations to be just a little bit less bouncy.
- Fix issue where window resize sometimes caused view updates to not render correctly.
- Fix issue where main menu overlapped with top crop edge and corners making it difficult to control the crop area in some situations.
- Various tiny fixes and improvements.
3.1.0 | 2019-02-21
- Add editor methods to React components.
- Add Vue components and demos.
- Add crop mask example to React and Vue demos.
- add
savemethod to manually save the currently loaded image. This is basically an alias forgetData. - add
onloadcallback which is called when an image has been successfully loaded. - Fix issue where the editor would prevent default on the
mousemoveevent. - Fix issue where aspect ratio dropdown would not select the free aspect ratio.
- Fix issue where modal close event was fired multiple times if modal was not immediately removed from DOM.
3.0.0 | 2019-02-12
This release adds React components to the package.
- Fix issue with zoom timeout where multiple editor instances were sharing the same timeout id.
- Fix issue where passing a
cropAspectRatiotoeditoropenwould make it the default crop aspect ratio. - Now only automatically closes and removes itself when in modal mode. When the editor is in preview or in-page layout mode it needs to be closed programmatically.
- Removed
queuemode, the active file is now replaced if a new file is added, by listening to theonconfirmevent it's still possible to walk over a queue of files. Samples have been updated. - Add
allowAutoCloseto disable automatically closing the modal. The modal can then be programmatically closed using theclose()method. - Add
allowAutoDestroy, if enabled the editor will automatically destroy itself when the modal is closed. - Renamed
labelButtonClosetolabelButtonCancel. - Renamed
allowButtonClosetoallowButtonCancel. - Fix issue where
clear()method did not work, it now removes the active image from view. - Cancelling editing an image will no longer reject the returned Promise, it will resolve it returning
null. - Add
beforeCreateBlobto adjust the output data before the Blob is created, useful for when you want to add a watermark. - Add
cropoptions, to programmatically update the current crop rectangle. - Fix file processing popup, will now only show when the file is actually being processed.
- Add more examples to the package.
- Update TypeScript definitions.
2.3.1 | 2019-01-22
- Update Typescript definitions.
2.3.0 | 2019-01-22
- Add
cropMaskandcropMaskInsetwhich can be used to plot a mask overlay on top of the crop area.
2.2.1 | 2019-01-17
- Fix issue where server side rendering would not work.
2.2.0 | 2019-01-03
- Add
cropMinImageWidthandcropMinImageHeightproperties. - Fix issue where zoom button could not be clicked when crop area was very small.
2.1.2 | 2018-12-27
- Fix issue where a resize of the image would prevent the editor from working on Android.
2.1.1 | 2018-12-22
- Fix issue where the image was flipped along the incorrect axis when rotated.
- Remove flip indicator from flip buttons.
2.1.0 | 2018-12-22
- Add typescript definitions file for the editor module.
- Add modal layout mode, set
styleLayoutModetomodalto enable (only works in fullscreen mode). See docs for further instructions. - Add key listener to allow closing of the modal and fullscreen mode by pressing the escape key.
- Add
outputStripImageHeadproperty, set tofalseto copy JPEG EXIF data to output file. - Add /_ eslint-disable _/ statement to each file library file to prevent collisions with es lint.
- Improve responsive rendering of crop tools menu so it correctly renders no matter how many buttons are active.
- Fix FilePond sample, image edit plugin should be registered last.
2.0.1 | 2018-12-04
- Fix issue with alignment of editor on IE11.
- Fix issue with alignment of aspect ratio dropdown on IE11.
- Fix issue with smoke overlay not rendering correctly on IE11.
2.0.0 | 2018-11-25
- Add keyboard navigation.
- Add aspect ratio dropdown.
- Add loading and processing image indicators.
- Add open API endpoint to manually open images.
- Add open API endpoint to manually edit images.
- Add getData API endpoint to manually retrieve image data.
- Add setData API endpoint to manually update image data.
- Add option to use Image and Canvas tags as a source.
- Add option to configure labels.
- Add option to drop images directly on the editor.
- Add option to disable menu buttons.
- Add zoom timeout option.
- Add image transform options.
- Add functionality that blocks interactions when loading or processing images.
- Add container mode, run one or multiple editors in-page instead of fullscreen.
- Add preview mode, run the editor in a preview overlay on top on an image.
- Add integrations with different file upload solutions.
- Improve rescaling of the editor.
- Improve rendering by syncing with FilePond internal render engine if present.
- Improve handling of keyboard focus, now moves to the editor when active.
- Improve style of cancel, reset and confirm buttons.
- Improve presentation of flip buttons.
- Improve the keyboard focus indicator.
- Fix issue where button icons would incorrectly align on older browsers.
- Fix issue where the editor view would be incorrectly centered on Internet Explorer 11.
- Fix issue where iOS bottom footer would interfere with the editor.
- Fix issue where focus could leave editor when in fullscreen mode.
- Fix close window animation.
1.0.2 | 2018-11-01
- Fix issue with resize controls not being positioned correctly when the viewport is very big.
1.0.1 | 2018-10-12
- Fix issue with dynamic font size on body of editor.
- Fix issue with resize controls not being positioned correctly.
- Fix issue where reset and zoom icons would be positioning incorrectly on small viewports.
1.0.0 | 2018-10-05
- Initial release.