Author |
Topic |
|
yeohray2
Malaysia
106 Posts |
Posted - Jul 25 2020 : 05:22:39
|
I have a png file which I add a layer to, then try to save it again. Code as follows:
vect1.IO.LoadFromFile('f:\temp\image.png');
// Append a text layer vect1.LayersAdd( ielkText ); TIETextLayer(vect1.CurrentLayer).BorderColor := clInfoBk; TIETextLayer(vect1.CurrentLayer).BorderWidth := 1; TIETextLayer(vect1.CurrentLayer).FillColor := clWhite; TIETextLayer(vect1.CurrentLayer).Font.Color := clBlack; TIETextLayer(vect1.CurrentLayer).Alignment := iejCenter; TIETextLayer(vect1.CurrentLayer).Layout := ielCenter; vect1.CurrentLayer.PosX := 0; vect1.CurrentLayer.PosY := 57; vect1.CurrentLayer.Width := 128; vect1.CurrentLayer.Height := 14;
TIETextLayer(vect1.CurrentLayer).Font.Size := 8; TIETextLayer(vect1.CurrentLayer).Font.Name := 'Times New Roman'; TIETextLayer(vect1.CurrentLayer).Text := 'SOME WATERMARK'; TIETextLayer(vect1.CurrentLayer).SizeToText;
vect1.CurrentLayer.Width := 128; vect1.CurrentLayer.PosY := (128 - vect1.CurrentLayer.Height) div 2;
vect1.CurrentLayer.Transparency := 170;
vect1.Update;
vect1.LayersMergeAll(False); vect1.IO.savetofile('f:\temp\image_watermark.png', ioPng);
Upon saving, the error 'Error on creating PNG' is raised. Is there something wrong with my code? It doesn't happen for all files, just some. I'm attaching one of the affected files.
Thanks in advance.
Ray
|
|
xequte
38611 Posts |
Posted - Jul 27 2020 : 19:53:43
|
Hi Ray
The source image has SamplesPerPixel=1 and BitsPerSample=16, so the PNG encoder tries to save the image as gray scale. But due to the watermark, the image is no longer gray scale, which causes the issue.
You can correct the SamplesPerPixel in the image, or you can email me for a fix, which automatically resolves it.
Nigel Xequte Software www.imageen.com
|
|
|
yeohray2
Malaysia
106 Posts |
Posted - Jul 28 2020 : 00:50:01
|
I see, thx. I'll just adjust the SamplesPerPixel then. |
|
|
|
Topic |
|
|
|