Releases: Aalto-LeTech/Scala-Media-Computation
Version 1.0.1
Release Notes for Scala Media Computation Library 1.0.1
Fixes a bug related to scaling empty bitmaps.
Release 1.0.0
Release Notes for Scala Media Computation Library 1.0.0
In addition to miscellaneous small refactorings, additions, and bug fixes that have been introduced, the most essential changes are listed below.
- Improves scaling of
Pictureinstances, i.e. several picture elements at once. - Sets bitmaps to be scaled using Area Averaging algorithm.
- Adds
Bitmap.apply(width, height, Seq(colors))method. - Reimplements
Bitmap.saveAsPngTo()in a more robust way. - Corrects typos in some color names (ChartReuse to
Chartreuse; GoldenRod toGoldenrod).
Pre-release version 0.0.9
Release Notes for Scala Media Computation Library 0.0.9
Fixes some bugs related to bitmap cropping.
Pre-release version 0.0.8
Release Notes for Scala Media Computation Library 0.0.8
In addition to miscellaneous small refactorings, additions, and bug fixes that have been introduced, the most essential changes are listed below.
- Fixes bitmap cropping.
- Implements flipping and convolution for bitmaps.
- Modifies
toString()methods ofColorandViewport. - Removes the request to use Java's Nimbus Look & Feel for the bitmap viewer.
- Sets image readers to ignore metadata in image files.
Pre-release version 0.0.7
Release Notes for Scala Media Computation Library 0.0.7
In addition to miscellaneous small refactorings, additions, and bug fixes that have been introduced, the most essential changes are listed below.
User-Visible Functionality
- Modifies the
toStringmethod ofPresetColorto return the canonical name of the color in question without spaces and with all words capitalized. - Moves functionality from
RichColortoColor, and renamesRicherColortoRichColor. - Implements loading bitmaps from both classpath-based resources and the Internet.
- Implements rotation and scaling for bitmaps and shapes.
- Adds scaling methods to the
Transformer. - Adjusts rendering of arcs and polygons.
- Adds subtraction methods to the
Posclass. - Modifies the bitmap viewer to use the new
Bitmapclass. - For JVM/AWT platform, sets the default interpolation method to bilinear to increase the quality of down-scaled bitmaps.
- For JVM/AWT platform, adds a platform-dependent setting for anti-aliasing.
Build Process
- Adds a folder for common resources, and configures SBT to use it for the root project as well as for the core projects.
- Sets Scala version to 2.12.3 to be equal with the Scala version currently included into Scala IDE.
Pre-release version 0.0.6
Release Notes for Scala Media Computation Library 0.0.6
In addition to miscellaneous small refactorings, additions, and bug fixes that have been introduced, the most essential changes are listed below.
Color-Related Functionality
- Adds
toStringmethod toPresetColor. - Changes the equality of
Colorinstances as follows:- By default (by using
.equals()and==) equality is determined by the four color values (RGBA) only. Also, hash codes are calculated on the basis of those four values only. - Method
equalsIncludingName()considers also canonical names of the colors. - In addition to the above, method
equalsIncludingNameAndPresetness()also differentiates colors based on whether or not both of the colors are presets.
- By default (by using
- Adds an
is()method that directly calls theequals()method. - Implements
darker()andlighter()methods for colors as simplified versions for shading and tinting. These methods use constant factors instead of accepting them as their parameters. - Fixes a color tinting calculation bug.
- Implements some methods for mixing colors based on given proportion of other given color.
Bitmap-Related Functionality
- Implements
crop()method for the newBitmapclass and removes the related code from the old architecture. - Refactors bitmap iteration and offers several kinds of methods for performing it, including the following ones in the
Bitmapclass:mergePixelsWith()for merging two bitmaps using a function that merges colors of two pixels.setColorsByLocation()accepts a function that determines color for a pixel by its coordinates.transformColorToColor()accepts a function that determines a new colors for a pixel based on its current color.transformLocationColorToColor()accepts a function that determines a new colors for a pixel based on its current color and location.iteratePixels()accepts a function that receives a mutablePixelinstance and modifies it to set a new color for the corresponding pixel.colorAt()returns the color of a pixel in the specified coordinates in the bitmap directly from the related Java/AWTBufferedImagewithout using aPixelSnapshot.
- Moves some bitmap filters, including palette-based color channel, grayscale, and posterization filters, from the old architecture to be usable with the new
Bitmapclass. - Refactors matrix iterating functionality out of pixel snapshot iterators into generalized enumerator and iterator classes that are located in their own packages under the
infrastructurepackage. - Moves pixel snapshot iterator classes into
smcl.pictures.iteratorspackage.
Other User-Visible Functionality
- Adds methods to convert
Posinstances into- new
Posinstances using given conversion functions - tuples of (floored)
IntsandDoubles.
- new
- Adds methods to wrap
Posinstances into tuples with other values. - Renames position type constants to
PosTypeUpperLeftCornerandPosTypeCenter. - Renames viewer update style constants to
VUSPreventViewerUpdatesandVUSUpdateViewerPerDefaults. These are are not currently being used in the new architecture's API. - Fixes a percentage validation bug in
CommonValidators.
Indpendent JVM/AWT-Specific Low-Level Functionality
- Changes more of the Bitmap interface to use
Doublesinstead ofInts.
Build Process
- Changes SBT version to 1.1.1.
- Sets versions of sbt-env-vars and sbt-library-info to 0.1.2 and 0.2.2, respectively.
- Starts to prepare for transition to Scala.js 1.0.x.
- Removes
withSources()andwithJavadoc()calls from build.sbt, as they are not recommended to be used (and IntelliJ IDEA may not like them). - Removes unnecessary constants from
build.sbt. - Updates
.gitattributes. - Adds a script as well as related shortcut icons and .desktop file templates for launching standard SMCL development terminals for SBT and Git in Bash/Gnome environment.
Pre-release version 0.0.5
Release Notes for Scala Media Computation Library 0.0.5
In addition to miscellaneous refactorings, small additions, and bug fixes that have bee introduced, the most essential changes are listed below.
User-Visible Functionality
- An off-by-one problem corrected in calculation of Bounds' dimensions.
- Handling of AWT colors is improved and the implicit conversion facilities are made public.
Pre-release version 0.0.4
Release Notes for Scala Media Computation Library 0.0.4
In addition to miscellaneous refactorings, small additions, and bug fixes that have bee introduced, the most essential changes are listed below.
User-Visible Functionality
- Viewports can be used to set pictures' sizes.
- Picture elements can be combined into new pictures in various ways.
- Picture elements can be replicated and alternated with others to create new pictures.
- Polygons and basic arcs are implemented.
- Polygons and arcs are used to provide triangles, rectangles, regular pentagons, regular star pentagons, circles, ellipses, and crosshairs.
- Object's positions will be their center points.
- Shape-related coordinates in the DrawingSurfaceAdapter are changed to be Doubles.
- Bitmaps can be loaded from files.
- Bitmaps can be iterated as pixels as well as colors by pixels.
- Rotation is implemented for shapes (scaling and shearing are missing, as well as rotation for bitmaps).
- An "enumeration" SideIndependentAlignment has been added.
- Double-based settings are added and some Int-based settings are converted into Double-based ones.
- A setting for regular star pentagon's cusp radius is added.
- A bunch of helper methods is added for instance to Dims, Bounds, Pos, Movable, and Rotatable.
- Object equality has been implemented for RGB colors.
- Bmp is renamed to Bitmap, Image to Picture, and ImageElement to PictureElement.
- AspectRatio class is added.
Build Process
- The code providing build information is created by a custom-made sbt-build-info plugin that copies and filters the files from a separate template project that has been added.
- Adds custom-made sbt-env-vars plugin for reading values of environment variables.
- Adds sbt-slack-notify plugin for later implementation of automatic build notifications.
- Started to add support for sbt-github-release and sbt-release plugins.
- SMCLReleaseNotes and SMCLVersion classes are added.
- Library versions (such as Scala.js) have been updated.
Makes it possible to convert between SMCL's Bmp and AWT's BufferedImage
v0.0.3 Sets version to 0.0.3
The first try with O1 student support library
v0.0.2 Switches into release mode