ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 ImageEn v7.5.0 Released

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
xequte Posted - Dec 12 2017 : 15:32:24
We have just released ImageEn v7.5.0, which is a free update if you purchased a license or extension after 13 December 2016. You can request the download from:

http://www.imageen.com/support/downloadrequest.html

Other users can extend their registration for 12 months at:

http://www.imageen.com/order/index.html#Extensions


Top Ten Enhancements

1. New Cloning Tool to erase unwanted content




2. New interactive Brush Tool to paint images




3. New interactive Rotation Tool to freely rotate and flip images

4. LibRaw can be used for Digital Camera Raw formats, providing support for more cameras, multi-shot photo and interpolation features

5. Enhanced PSD features, including support for loading and saving files without merged images, and reading and writing of Exif tags

6. New mouse interaction allows selection of background or subject using a Chroma Key algorithm




7. Filename filtering for TImageEnMView and TImageEnFolderMView

8. All new component icons, plus ImageEn properties can now be categorized in Object Inspector




9. Gradient, Alpha and Graduated Alpha fills

10. New Actions: TImageEnViewCloneTool, TImageEnViewBrushTool, TImageEnViewSprayTool, TImageEnViewRotateTool, TImageEnViewRotateAndCropTool, TImageEnViewShowGuidelines, TImageEnViewSelectChromaKey


Complete Change History: http://www.imageen.com/info/history.html


Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
8   L A T E S T    R E P L I E S    (Newest First)
xequte Posted - Mar 28 2018 : 03:29:26
Hi Chris

Have you checked your Spam folder?

I can't find any messages under your name. Can you confirm your email address?




Nigel
Xequte Software
www.imageen.com
ChrisD Posted - Mar 26 2018 : 12:09:26
I have submitted the form in order to access the download of the latest version of the software. I have not heard back from anyone. Will someone please assist me? We need the update in order to move to the Tokyo version of embarcadaro.

xequte Posted - Dec 28 2017 : 14:24:31
Hi Ali

You probably have another instance of ImageEn or the ImageEn BPL’s on your Delphi path. Alternatively, when you compiled your packages, they might be pointing to old ImageEn source or DCU files.

Search your system, remove any ImageEn files that you find, then reinstall ImageEn.

Nigel
Xequte Software
www.imageen.com
ali_reza_nazari Posted - Dec 28 2017 : 08:31:32
#8203;hi,
i build PKIECTRL15.DPK, PKIEDB15.DPK
then build and install DPKIECTRL15.DPK
but have an error
try installation with setup.exe , but after open delphiXe raise same error
please help me
---
ERROR:
the procedure entry point @IExLayers@initialization$qqrv could not be located in the dynamic link library DPKIECTRL15.bpl

Dr.
IA Computer
xequte Posted - Dec 23 2017 : 23:47:04
Thanks for your feedback, Bill,

Will look into this after the new year. Will probably use Alpha Composting to handle it:

https://en.wikipedia.org/wiki/Alpha_compositing


Nigel
Xequte Software
www.imageen.com
w2m Posted - Dec 18 2017 : 14:08:56
1. I would think that if the image is 32bit and the user draws on layer 0 (the raw image with no layers) you could draw the color that uses the selected brush color and alpha value. In this case, the original pixel color and alpha is repainted and overwrites the original pixel color and alpha. If the image is not 32bit (24-bit or less ) then you could draw a dithered color that uses the selected brush color and alpha but does not draw the alpha. I do not think the painted alpha should be adjusted at all biased on the pixels existing alpha value.
function DitherColor(AColor: TColor; AAlpha: Integer): TColor;
{ Dither a 32-bit color (with alpha value) to TColor. }
var
  iRGB: TRGB;
begin
  iRGB := TColor2TRGB(AColor);
  if (iRGB.r = 255) and (iRGB.g = 255) and (iRGB.b = 255) then
  begin
    iRGB.r := AAlpha;
    iRGB.g := AAlpha;
    iRGB.b := AAlpha;
  end
  else
  begin
    iRGB.r := Trunc(AAlpha / 255 * iRGB.r) + (255 - AAlpha);
    iRGB.g := Trunc(AAlpha / 255 * iRGB.g) + (255 - AAlpha);
    iRGB.b := Trunc(AAlpha / 255 * iRGB.b) + (255 - AAlpha);
  end;
  Result := TRGB2TColor(iRGB);
end;

2. If the image has a layer, the original pixel color and alpha is repainted which overwrites the original pixel color and alpha.

I hope this helps and thanks for thinking about this. Perhaps Fabrizio can provide some ideas as well.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
xequte Posted - Dec 18 2017 : 13:40:52
Hi Bill

We're still deciding the best way to handle this. It is more complex than it seems, for example, if you paint an alpha 128 brush onto a solid image, the alpha of the image should not change, but the image should shine through the brush (i.e. painted with 50% transparency, however if you paint an alpha 128 brush onto a blank image, then presumably the image's alpha should change to 128 but be painted with 0% transparency.

So far so good. Now what happens if the image is already 128 alpha? Do we raise the alpha to 255 and paint with 50% transparency or leave it as 128 and paint with 0% transparency?

And worse, what if there is different levels of alpha where we paint, e.g. half blank and half opaque? Ugh.

I'm really not sure what the right answer is here. We may need to have two properties.


Nigel
Xequte Software
www.imageen.com
w2m Posted - Dec 14 2017 : 14:13:12
I have been experimenting with the new brushtools which is awesome addition to ImageEn which has been desired by many users for years. Thank-you.

I am finding that with 32-bit RGBA painting, the painted brush alpha is not correct. Painting on the alpha channel does not paint at all when alpha is 0 and the alpha values are either incorrect or I am determining (getting) the alpha value under the mouse cursor incorrectly. To test this add the following to the BrushTools demo:
procedure TForm1.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  iX: Integer;
  iY: Integer;
  iAlpha: Integer;
  iRGB: TRGB;
  iColor: TColor;
  iisImageLayer: Boolean;
begin
  iX := ImageEnView1.Layers[ImageEnView1.LayersCurrent].ConvXScr2Bmp(X);
  iY := ImageEnView1.Layers[ImageEnView1.LayersCurrent].ConvYScr2Bmp(Y);
  iisImageLayer := ImageEnView1.CurrentLayer is TIEImageLayer;
  if (iisImageLayer) and (iX >= 0) and (iX <= ImageEnView1.IEBitmap.Width - 1)
    and (iY >= 0) and (iY <= ImageEnView1.IEBitmap.Height - 1) then
  begin
    X1.Caption := 'X: ' + IntegerToString(iX);
    Y1.Caption := 'Y: ' + IntegerToString(iY);
    iRGB := ImageEnView1.Layers[ImageEnView1.LayersCurrent].Bitmap.Pixels[iX, iY];
    iColor := TRGB2TColor(iRGB);
    iAlpha := ImageEnView1.Layers[ImageEnView1.LayersCurrent].Bitmap.Alpha[iX, iY];
    ColorUnderCursor1.Brush.Color := DitherColor(iColor, iAlpha);
    Alpha1.Caption := 'Alpha: ' + IntToStr(iAlpha);
    Opacity1.Caption := 'Opacity: ' + IntToStr(IEAlphaToOpacity(iAlpha)) + '%';
  end;
end;

For example if you paint with an alpha of 128 the apparent dithered color is correct, but the actual alpha value is incorrect at 255.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development