Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ TheIDE and Library: Releases and ChangeLogs » Finally there... new Image "commited"...
Finally there... new Image "commited"... [message #3235] Mon, 15 May 2006 14:47 Go to previous message
mirek is currently offline  mirek
Messages: 13984
Registered: November 2005
Ultimate Member
Recent tree is now freezed as "upp605" repository.

Short overview of new architecture:

Image has ALWAYS RGBA format. Alpha channel is now supported.

ImageBuffer - similar to StringBuffer, "writable" Image

Image - same as now, raster image that can be displayed by Draw

Raster - represents source of raster data, e.g. PNG file or PNG file in memory

ImageRaster - Raster of Image

StreamRaster - stream based raster, usually image file

RasterEncoder - "writer" of raster data - output stream of scanlines

ImageEncoder - RasterEncoder that produces Image

RasterStreamEncoder - base of file format encoders

Various image operations are available (sharpen/blur, color adjustments etc...), the often used basic form is "Raster->RasterEncoder".

MakeImage: Image operations can be registered by name, MakeImage creates image based on some input parameters (usually Image) and "cooking receipt", e.g.:

MakeImage(CtrlImg::exclamation, "rescale 100, 100; grayscale");

The thing is that MakeImage contains cache, so results can be cached (ideal for future chamemelon issues).

Another significant improvement of Draw:

void DrawData(int x, int y, int cx, int cy, const String& data, const char *type);

- this draws binary (or whatever) data with specified type. E.g.

w.DrawData(0, 0, 100, 100, LoadFile("d://file.png"), "image");

The most important part of this is that it works with Drawing (gets stored and rescaled as needed) and even has optimization support for printing (paints by bands, detects areas of uniform colors). In other words, it is a tool necessary to get AGG and other software renderers working.

To add your own DrawData format, you need to implement and register "DataDrawer" class.

Various other improvements were done too; e.g. Linux now supports images on clipboard and even RTF on clipboard.

Mirek
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Assist++ improvements
Next Topic: Prompts now fixed to visually match Win32 prompts
Goto Forum:
  


Current Time: Sun Jun 09 14:42:53 CEST 2024

Total time taken to generate the page: 0.02665 seconds