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
 TImageEn.IO.Read blurred png image

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
kowal Posted - May 19 2023 : 14:27:34
Hi,
I try to paint a map with some pictures created in my application placed on it.
Now I have a curious png image file which is blurred when I read it by imageen.IO.ReadFromFile()

It seems to be invalid in some way, but MS Paint opens it ok.
Is it possible to read this file into imageen so that it looks like in MS Paint?
I attache the comparison of IO and MS Paint image and the png file I try to read.
The file TransparentColor is clWhite

S. Kowalski







10   L A T E S T    R E P L I E S    (Newest First)
kowal Posted - May 28 2023 : 15:22:28
Hi,
I didn't try layers because I thought they are a set or collection of objects - images, lines etc. like in GIS or CAD applications.
Now I see that the layer is only one object: better image, better text or polyline and that suites me very well.
I need the set of this 3 objects for every sign.
So thanks very much for your help.
I'll let you know about the result or may be ask for some help if I'll need it.
S.
xequte Posted - May 26 2023 : 17:35:50
Hi

The main difference between TImageEnView and TImage is that TImageEnView is not transparent (so you can't place TImageEnViews onto things and have the background view through).

Rather I would expect that you load your background image into the TImageEnView and you would add your sign images as layers onto the TImageEnView. That would have many advantages:
- Easy for the user to size and move them
- Saving of image with layers separated so they can be edited later
- Support for vector shapes that do not lose quality when sized
- Support for 8bit transparency

Please try out the demos in in \LayerEditing\ folder and let us know if you have any difficulty.

https://www.imageen.com/help/TIELayer.html

Nigel
Xequte Software
www.imageen.com
kowal Posted - May 26 2023 : 12:24:30
Thank you for the advices.
As for your suggestion about using TImageEnView instead of TImage - the application was created before I get TImageEnView.

I thought about using TImageEnView but didn't try.
In the demo applications I see one or two ImageEnView.
In my application every sign image should be the new instance of this component and be placed on the background image.

In the project I have the class TSignImage(TImage) and add to it some data properties.
Dependent on data the map can contain several dozen TSignImage objects.

Isn't it too complicate "heavyweight" :-) to use TImageEnView in this way?
Or may be I do not know all possiblites of the ImageEn library.

S.
xequte Posted - May 25 2023 : 17:52:45
Hi

IIRC, TImage only supports transparency based on color of the bottom left pixel. So if you are creating assets to use with TImage, you should not use transparency at all (i.e. ensure your PNG file has no alpha channel), otherwise you're going to be forced into this conversion from 8bit transparency to 1bit transparency to solid background color.

Do you need to use a TImage? Can you not achieve your requirements with TImageEnView?

Nigel
Xequte Software
www.imageen.com
kowal Posted - May 25 2023 : 16:52:39
Hi,
thanks for your answer Nigel
my target is to create raster image map with the road signs placed on the image.
I prepare the signs as png files but I'm not using AlphaChannel as far.
The Canvas.Brush color for the image.png is clWhite-1.

The sign files - source files are then used in dynamically created TImage objects for .Picture.Bitmap property.
The imageEn bitmap is usefull for TImage.Picture objects rotating but finally I want to have TBitmaps for TImage.Picture objects.

So my main problem is to keep Transparency while rotating or resizing the source png files transformed to timage.picture.bitmap

btw the
img.Picture.Bitmap.Assign(iebmp.AlphaChannel.VclBitmap);
works ok but really it's only 8bit image in this case.

S.
xequte Posted - May 24 2023 : 21:34:20
Hi

Can you tell me specifically what you are looking to do? If you only want to copy an image to the clipboard you can use:

// Copy a file to the clipboard
With TImageEnProc.Create( nil ) do
begin
  AttachedIEBitmap.Read( Filename );
  CopyToClipboard();
  Free;
end;



Regarding your code, you don't need to use SetTransparentColors() because your image is already transparent.

However it has 256 levels of transparency, so when you open it in simple editing applications like Paint that only support 1 level of transparency (either transparent or not transparent) then those *slightly* opaque pixels look like fluff.

(Your image is actually completely white, it is only the alpha channel that gives it "content" by hiding some of the white).


Here is your alpha channel (inverted):



Nigel
Xequte Software
www.imageen.com
kowal Posted - May 24 2023 : 10:30:26
Hi,




I attach the image from my test application and here is the whole code for onClick event.
I use the img object to show iebmp on my form.

procedure TForm3.btimage_pngClick(Sender: TObject);
var iebmp: tiebitmap;
    img: TImage;
    transcolor: trgb;
begin
  self.color := clDarkGray;
  img := TImage.Create(self);
  img.Parent := self;

  iebmp := TIEBitmap.Create;

  iebmp.Read(workdir+'\image.png');

  transColor := iebmp.Pixels[ 0, iebmp.Height - 1 ];
  iebmp.SetTransparentColors( transColor, transColor, 0 );

  iebmp.CopyToTBitmap(img.Picture.Bitmap);
  img.Transparent := true;
  img.left := 100;
  img.top  := 100;
  iebmp.CopyToClipboard;
end;


S.


xequte Posted - May 22 2023 : 17:47:27
I'm not seeing that here. It looks the same in ImageEn as other apps. Can you give me more information?



Nigel
Xequte Software
www.imageen.com
kowal Posted - May 21 2023 : 12:32:38
Hi,
I attach this file

S.

xequte Posted - May 19 2023 : 16:04:00
Hi

Can you attach the image you are referring to?

Nigel
Xequte Software
www.imageen.com