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 next message
mirek is currently offline  mirek
Messages: 13975
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
Re: Finally there... new Image "commited"... [message #3237 is a reply to message #3235] Mon, 15 May 2006 15:49 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1366
Registered: November 2005
Location: Poland
Ultimate Contributor

Wow! The most impresive changlog ever. Now lets find some bugs.. Wink
Re: Finally there... new Image "commited"... [message #3241 is a reply to message #3235] Mon, 15 May 2006 21:48 Go to previous messageGo to next message
forlano is currently offline  forlano
Messages: 1185
Registered: March 2006
Location: Italy
Senior Contributor

Excellent work!
Luigi

[Updated on: Mon, 15 May 2006 21:51]

Report message to a moderator

Re: Finally there... new Image "commited"... [message #3699 is a reply to message #3235] Tue, 13 June 2006 16:07 Go to previous message
fudadmin is currently offline  fudadmin
Messages: 1321
Registered: November 2005
Location: Kaunas, Lithuania
Ultimate Contributor
Administrator
luzr wrote on Mon, 15 May 2006 13:47


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


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.

Mirek


Not necassary for AGG but could help to save bandwidth... Wink
Previous Topic: Assist++ improvements
Next Topic: Prompts now fixed to visually match Win32 prompts
Goto Forum:
  


Current Time: Mon May 06 20:06:01 CEST 2024

Total time taken to generate the page: 0.03547 seconds