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
 Watermark problem

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
apresa Posted - Jan 02 2018 : 08:05:20
Hi all:

I try with this code but show error:

there is not enough space on disk

Of course, I have free space...


procedure TForm1.Watermark1Click(Sender: TObject);
var
  iLayer: integer;
  sHeight, sWidth:integer;

begin

  if OpenPictureDialog1.Execute then
  begin
    //first logo
    iLayer := ImageEnView1.LayersAdd(ielkImage);
    ImageEnView1.IO.LoadFromFile(OpenPictureDialog1.FileName);
    sWidth := ImageEnView1.Layers[ilayer].Width div 10;
    sHeight := ImageEnView1.Layers[ilayer].Height div 10;
    // center logo position
    ImageEnView1.Proc.Resample(sWidth, sHeight, rfLanczos3, True);
    ImageEnView1.Layers[ilayer].PosX := IELayer_Pos_HCenter;
    ImageEnView1.Layers[ilayer].PosY := IELayer_Pos_VCenter;
    ImageEnView1.Layers[ilayer].Transparency := 40; // (0-255)


     //second logo
    iLayer := ImageEnView1.LayersAdd(ielkImage);
    ImageEnView1.IO.LoadFromFile(OpenPictureDialog1.FileName);
    // change position logo
    ImageEnView1.Proc.Resample(sWidth, sHeight, rfLanczos3, True);
    ImageEnView1.Layers[ilayer].PosX := IELayer_Pos_HCenter ;
    ImageEnView1.Layers[ilayer].PosY := IELayer_Pos_VCenter div 3;
    ImageEnView1.Layers[ilayer].Transparency := 40; // (0-255)
    ImageEnView1.LayersMergeall;

    ImageEnView1.Update;

  end;
end;


TIA

Alfonso
1   L A T E S T    R E P L I E S    (Newest First)
w2m Posted - Jan 02 2018 : 09:20:37
IELayer_Pos_VCenter is a const that must not be modified. Modify PosY to change the layers position instead of IELayer_Pos_VCenter div 3.

procedure TForm1.WaterMark1Click(Sender: TObject);
var
  iLayer: integer;
  sHeight, sWidth: integer;
begin
  if OpenPictureDialog1.Execute then
  begin
    // first logo
    iLayer := ImageEnView1.LayersAdd(ielkImage);
    ImageEnView1.LayersCurrent := iLayer;
    ImageEnView1.IO.LoadFromFile(OpenPictureDialog1.FileName);
    sWidth := ImageEnView1.Layers[iLayer].Width;
    sHeight := ImageEnView1.Layers[iLayer].Height;
    // center logo position
    ImageEnView1.Proc.Resample(sWidth, sHeight, rfLanczos3, True);
    ImageEnView1.Layers[iLayer].PosX := IELayer_Pos_HCenter;
    ImageEnView1.Layers[iLayer].PosY := IELayer_Pos_VCenter;
    ImageEnView1.Layers[iLayer].Transparency := 40; // (0-255)
    // second logo
    iLayer := ImageEnView1.LayersAdd(ielkImage);
    ImageEnView1.LayersCurrent := iLayer;
    ImageEnView1.IO.LoadFromFile(OpenPictureDialog1.FileName);
    // change position logo
    ImageEnView1.Proc.Resample(sWidth, sHeight, rfLanczos3, True);
    ImageEnView1.Layers[iLayer].PosX := IELayer_Pos_HCenter;
    ImageEnView1.Layers[iLayer].PosY := IELayer_Pos_VCenter;
    {ImageEnView1.Layers[ilayer].PosY := IELayer_Pos_VCenter div 3; INCORRECT}
    ImageEnView1.Layers[iLayer].PosY := ImageEnView1.Layers[iLayer].PosY div 3;
    ImageEnView1.Layers[iLayer].Transparency := 40; // (0-255)
    ImageEnView1.LayersMergeAll(True);
    ImageEnView1.Update;
  end;
end;

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