• Welcome to Vampyre Imaging Library Forum. Please login or sign up.
 

Imaging 0.3x Poll and Info

Started by Galfar, 18 September 2007, 00:46:16

Previous topic - Next topic

What features you would want to see enhanced/extended in upcoming Imaging 0.3x?

Image file formats
Image data formats
VCL/LCL support
Canvas functions
Documentation/Demos
3rd party libraries support (D3D, OGL, SDL, ...)
Ease of use
Other (make a post about it!)

Galfar

18 September 2007, 00:46:16 Last Edit: 5 December 2010, 20:07:57 by Galfar
Work on Imaging 0.3x branch is about to begin in few weeks.

What library features should I focus on first?
What should be extended or added? (compared to current version)
Please make a vote.

Note: SMF only allows registred users to vote in a poll.

jdarling

I'd like to see support built out in a few more image formats.  Specifically: XPM and PSD support added.  AWD would be a nice to have, but seeing as how ArtWeaver can export to other formats (PNG, TIFF, etc...) it isn't that much of a hassle.  Might be some re-useable code in GraphEx (http://www.soft-gems.net/index.php?option=com_content&task=view&id=13&Itemid=33).

Of course, Lazarus has built in support for XPM that could be used for reference as well :).

Galfar

Marco:
I'll have a look at DelphiTWAIN.

Jeremy:
PSD is already supported (since 0.24 in June). XPM is on my list for a long time (may
be included in next 0.24.2 patch release if I'll have the time).
Do you know if AWD specs are published somewhere? I downloaded their SDK but ii looks like there is plugins and translations stuff only (it is in Delphi though, nice).

jdarling

I don't know if the spec is published some place or not.  I have contacted the author before and he seemed very responsive, of course that was in regards to the Lua integration and not direct access to his data files :).  When I tried reading in a PSD it didn't quite work well, but then again the PSD is a CS3 version with embedded objects so that may be a problem.  I'll have Creative save it as a CS2 and see how that loads.

My other request would be getting transparency working when blitting :(.  Right now I'm using:procedure BlendImageTo(WhatCanvas: TCanvas; ImageData : TImageData; SourceRect : classes.TRect; DestX, DestY : Integer; AlphaThreshold : Byte = 255);
var
  ax, ay,
  ix, iy : integer;
  c32    : TColor32Rec;
begin
  iy := DestY;
  for ay := SourceRect.Top to SourceRect.Bottom do
    begin
      ix := DestX;
      for ax := SourceRect.Left to SourceRect.Right do
        begin
          c32:= GetPixel32(ImageData, ax, ay);
          if c32.A >= AlphaThreshold then
            WhatCanvas.Pixels[ix, iy] := RGBToColor(c32.R, c32.G, c32.B);
          inc(ix);
        end;
      inc(iy);
    end;
end;
Of course thats extremely slow and not really a good way to perform the blit :(.  It also doesn't handle the alpha blending, but hey it works :).

arthurprs


sofakng

I'd really like it to support alpha blending...

(eg. if I draw an image on top of another image, I'd like to set the blending just like in DirectX)

This should be really easy to implement (right?).  It seems like all that needs to be done is add/subtract/multiply the pixels between the source and destination with the given blending operation...

Galfar

1 December 2007, 11:56:19 #6 Last Edit: 1 December 2007, 11:58:22 by Galfar
Quote from: jdarling on  5 October 2007, 22:27:31
My other request would be getting transparency working when blitting :(. 

Quote from: sofakng on 27 November 2007, 16:20:58
I'd really like it to support alpha blending...


Thats on my list already (for quite a long time I might add). I plan to implement
various source and destination blending functions (just like in D3D/OGL).
Problem with this is that it won't be very fast - so I also plan to add
optimized versions of some most used blending operations (like alpha and additive blend)
but only for some image data formats.

Galfar

Some sort of SVG support can be done (loading only since Imaging is raster image library).
It could use new canvas to draw shapes defined in SVG xml files (nothing too fancy though).

Galfar

I started with Imaging 0.30 in November '07 and designed basic classes and structures.
Also basic processes like data format conversions and file loading saving were written.
Currently it is nearly 100 KiB of Pascal code but still far from usable.
I hope I'll have more time for it in coming months.

Some of the new features (not in 0.2x) in 0.30:
Data Formats:

  • Native 1, 2, and 4 bit grayscale and indexed formats

  • New YCC and CMYK data formats

  • New compressed data formats (ATI 3Dc, ...)

  • Custom data formats



Galfar

Quote
support alpha blending

That's the plan.
Quote
streaming jpg2000

This depends mainly on OpenJpeg library Imaging uses for Jpeg 2000 decoding/encoding, they are some big IO changes planned for OpenJpeg 2.0 so maybe it will be possible.

martinpm

Tiff G4 / BW / G3 FAX. Anyway you are doing a very well job. ;D

Galfar

Thanks.

You mean saving Tiffs with these compression schemes?
Loading should work now I think.


Vidok


arthurprs


Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Name:
Email:

Shortcuts: ALT+S save/post or ALT+P preview

SMF spam blocked by CleanTalk