RELEASE NOTES

Version 4.8
===========
Under development :)

Version 4.7
===========
February 13, 2024

New Features:
- Made masks translucent for easier mask making.
- Expanded support for circular chart recorders. Now support 1 day, 1 week and also both rotation directions.

Bug Fixes:
- Fixed bugs with mask creation when view is rotated.

Version 4.6
===========
September 16, 2022

New Features:
- Experimental support for Circular Chart Recorders
- Apple Silicon support for desktop application
- Ability to rotate images in addition to zoom (contribution from Eric Chow)

Code Cleanup:
- Remove dependence on closure compiler, use NPM to manage builds
- Several bug fixes and additional unit tests

Version 4.5
===========
August 15, 2021

New Features:
- Ability to create Point Groups (contribution from Eric Chow)

Bug fixes:
- Fixed blob detection area and moment broken in previous releases.
- Fixed loading PDFs in desktop versions
- Fixed image paste behavior
- Other minor bug fixes


Version 4.4
===========
November 28, 2020

New Features:
- Added an option to turn off automatic rotation correction of XY axes

Misc:
- Several minor bug fixes

Version 4.3
===========
July 7, 2020

New Features:
 - Load multiple images at once (contribution from Eric Chow and Bill Denney)
 - Digitize data from multiple PDF pages (contribution from Eric Chow and Bill Denney)
 - New algorithm ("Custom Independents") allows specifying X values for which XY charts should be digitized
 - Allow loading static projects from the server using a project ID param in the URL
 - Specify display color for a dataset

Misc:
- Removed WebAssembly code for now. May revive that in the future
- Many minor bug fixes and slightly improved test coverage

Version 4.2
===========
April 7, 2019

New Features:
 - Save and resume auto-detection algorithm settings along with masks in the project file (per dataset). 
 - Crop images before digitization.
 - Undo/Redo management system (used only for cropping images at the moment)
 - Initial ability to run digitization on multiple images via NodeJS command-line

Bug fixes:
 - Improve X Step with Interpolation algorithm for log-scale charts
 - Improved unit test coverage

Misc:
 - Minor UI tweaks for mask creation

Version 4.1
===========
January 8, 2018

New Feature:
 - Ability to measure area and perimeter of polygons

Bug fixes:
 - Fix grid removal
 - Fix axes labels for 2D XY axes
 - Fix loading project files in Chrome on Windows OS
 - Fix transformation equations for polar axes
 - Fix issue with editing bar chart labels
 - Update Simplified Chinese and French translations
 - Add keyboard shortcuts (F2 or Mac+R) to rename axes and datasets. Double-click should also work.
 - Fix copy/paste in MacOS desktop app
 - Fix color selection after reloading projects

Version 4.0
===========
October 30, 2017

New Features:

- Offline Electron apps for Windows/Linux/Mac OS
- Multi-axes support
- PDF support: In addition to traditional images, PDF documents can also be loaded now.
- Combined project files: Users can now download both image and JSON data in combined .tar files. In later versions, the JSON will also contain auto extraction parameters.
- Tree control in the UI: This makes it much easier to work with multiple datasets.
- Support for time along with dates in 2D XY charts
- PHP has been replaced with a Go backend
- Client side downloads: For most new browsers, CSV/JSON/tar files can be generated and downloaded entirely in the browser. Data will not require to be bounced off of the server.
- Added Simplified Chinese translations (work in progress).
- A lot of code refactoring to allow more features in the future.

Misc:
- WPD will no longer support Internet Explorer browser. Microsoft Edge should work.

Version 3.12
============
June 3, 2017

Licensing
- Moved to GNU AGPL v3 from GNU GPL v3

New Features
- Export all datasets to Plotly together using the "Export All Datasets" option.
- Minor improvement of axes calibration point graphics
- Provide user the option to account for axes rotation for bar charts when the charts are not perfectly vertical or horizontal.

Bug Fixes
- Minor bug fixes related to drag-drop of image

Version 3.11
============
January 17, 2017

New Features:

- X Step w/ Interpolation and X Step algorithms now work with log scale XY axes.
- Add ability to export all datasets to a single combined CSV file from the Data menu.
- Add internationalization support and translate to French and German.

Version 3.10
============
May 8, 2016

New Features:

- Improved sub-pixel behavior of the default averaging window algorithm, blob detector and bar extraction.
- Added ability to re-edit axes calibration after collecting data.

Bug fixes:
- Re-worked bar extraction algorithm to allow capturing both negative and positive values in the same chart (horizontal or vertical).
- Allow automatic extraction algorithms to work with images with a transparent background.

Version 3.9
===========
October 18, 2015

New Features:
- Initial implementation of grid removal.
- Log scale support for polar diagrams.

Bug fixes and code clean-up:
- Eliminate dependence on numeric.js for a lighter and more predictable code base.
- Improve rendering of data points.
- Refactor measurement code to allow for path length and area measurement tools in the future.

Version 3.8
===========
May 7, 2015

New Features:

- Added initial support for bar charts and histograms.
- Context sensitive algorithm options in the UI.
- Controls for measurement data made consistent with plot data.
- Added button to show extended crosshair next to image zoom options.
- Minor UI tweaks for better appearance across different platforms.
- Use alpha channel in zoom view for smoother appearance.

Bug Fixes and code clean-up:

- Code clean up based on JSHint suggestions.
- Fixed missing data point metadata in JSON files.
- Fix minor issues with graphics related to distance and angle measurements.
- Graphics related code clean-up.
- Fix minor issues related to blob detector algorithm.

Version 3.7
===========
March 9, 2015

Bug fixes:

- Fixed multiple calibration issues with polar diagrams.
- Fixed switching between tools using keyboard during distance and angle measurements.

New Features:

- Exported JSON now contains actual data values in addition to the pixels positions of the data points.
- Added ability to load remote images sent via POST (not to be exposed on the website at the moment).
- Chrome extension that can allow users to send any image on the internet to a locally hosted WebPlotDigitizer (not to be added to the Chrome store at the moment).

Version 3.6
===========
Released January 17, 2015

User Interface Improvements:

- Draggable Popup Windows
- Thanks to Zlatan Stanojevic:
    - Q and W keys can be used to select the next or previous data point when manually adjusting data points.
    - Ability to change the column separator in the final CSV output.
- Minor bug fixes and enhancements.

Version 3.5
===========
Released November 11, 2014

Bug Fixes:

- Fixed broken dropdown menu for switching datasets in the automatic extraction sidebar.
- Improved user script handling.
- Improved X Step with Interpolation algorithm.
- Other minor UI improvements.

Version 3.4
===========
Released September 22, 2014

New features:

- Added ability to import and export calibration and digitized data via JSON files.
- Added support for handling multiple datasets in a plot. Now data for each data series can be captured separately.
- Equations to transform pixel positions to data points on the plot can now be viewed by selecting the 'Transformation Equations' option in the Axes menu.
- Added ability to format numbers in the CSV output.
- Added a button to quickly erase the entire mask when using the erase tool.

Bug Fixes:

- Fixed a very small CSV file size restriction in WebKit based browsers.
- Simplified XY axes transformation code.
- Code clean up in many places, minor performance improvements and UI tweaks.


Version 3.3
===========
Released June 16, 2014

- New detection algorithms:

    - Added a new algorithm "X Step w/ Interp". This uses cubic splines to interpolate over data such as dotted/dashed lines and even data points. A smoothing parameter is also provided that controls the width in x-direction that the underlying detection is averaged over. A parameter value of 0 turns off this smoothing. Any value higher than zero will add some smoothing over the data.

    - Added a blob detection algorithm. This allows detecting locating the centers of objects ("blobs") in an image. This also calculates the area and the first rotational invariant image moment of each blob. The Min_Distance and Max_Distance parameters help excluding objects that are smaller or larger than this range.

- UI Tweaks:
    - Visual busy indication when loading an image or when auto extract algorithm is running.
    - Box mask drawing tool improved.
    - Minor tweaks to improve usability on smaller screens.


Version 3.2
===========
Released May 27, 2014

- Color picker for FG and BG color also show a list of dominant colors in the image.
    - This makes it more convenient to select plots.
    - In the future, the underlying algorithm will help improve automatic extraction.

- Bug fixes: The following issues have been fixed:
    - Under some screen resolutions, Firefox on Windows 7, would not show the zoom view or the sidebar buttons.
    - Clicking "Run" for auto detect without making a mask would throw an error in the javascript console.
        - Now, the entire image will be used by default if no mask is drawn.


Version 3.1
===========
Released: May 14, 2014

- Prevent browsers from caching HTML page of the app.


Version 3.0
===========
Released: May 11, 2014

A complete overhaul of the app was required to introduce some of the new features and improve maintainability.

Plot display:
    - Added ability to zoom in/out an image
    - Graphics widget can now handle relatively larger images

Zoom view:
    - Larger zoom view
    - Added ability to adjust magnification
    - Added ability to change crosshair color

Axes alignment:
    - Added ability to adjust points using keyboard keys. Pressing shift along with cursor keys moves the points faster.
    - Added labels for points which persist when alignment values are entered.
    - Unit can be defined for map axes. This is useful when making distance measurements.

Manual data acquisition:
    - Points can now be adjusted using keyboard cursor keys

Automatic data acquisition:
    - New mask display and color selection views improve overall detection accuracy.
    - Improved workflow eliminates the need for the popup window for fine tuning. These controls are now available from the sidebar itself.

Data table:
    - Digitized data can now be exported to a CSV file without the user having to copy-paste values.

Measurements:
    - Added ability to measure distances and angles in images. For map axes, the distances are calculated in the specified units.

Scripts:
    - Added preliminary support to allow custom user scripts

Webcam support:
    - Added webcam image capture ability (works only in Google Chrome or Firefox)

Image Editing:
    - Image editing functions (flip, crop etc.) have been temporarily hidden. These will be added back in the future releases.

Detection algorithms:
    - Only averaging window and X step are enabled in this version. Other algorithms will be included in a future release.

Code improvements:
    - New modular code structure improves maintainability and ease of adding new features
    - Noticeable performance improvements in many areas
    - More efficient use of memory

UI improvements:
    - Added button highlighting, cleaner stylesheets


Version 2.6
===========
Released: October 20, 2013

Handling Digitized Data:
	- Added option to graph or analyze data in Plot.ly (http://plot.ly)
	- Added options to sort data by ascending or descending order of variables
	- Added option to sort data by nearest neighboring data point. This is useful for things like sketches and outlines.

Automatic Data Extraction:
	- Added algorithm (only for XY plots) which allows user to control the X points at which the data is to be digitized. This is useful for digitizing and comparing values from two curves in the same plot (for example).

Support for Dates:
	- Dates can be entered for XY plots. While calibration, dates have to be entered in yyyy/mm or yyyy/mm/dd format. The output can be formatted in a variety of formats. Support for time is under consideration for next release.

Code improvements:
	- Several improvements in the javascript code were made to ensure WPD continues to work with new browsers.
	- Entire javascript is minified using the Closure compiler. This results in a significantly faster loading time for the app.
	- Minor performance improvements.
	- Minor clean up of the interface.

Browser Support:
	- WPD works in Internet Explorer 10 now.
	- Clipboard copy-paste works for Google Chrome.
