Hi
You are best to do this using selections. Please email me for an update that supports curved selections, like the following:
procedure TMainForm.btnCurvedSelectionClick(Sender: TObject);
const
WAVE_HEIGHT = 0.4; // Wave selection is 40% height of image
CURVE_COUNT = 6; // Number of up and down curves
CURVE_MULT = 2.4; // How curved is the line? 1=half circle
var
waveHt, i: Integer;
waveWidth, curve, endX: Double;
begin
ImageEnView1.Deselect();
ImageEnView1.SelectionBase := iesbBitmap;
waveHt := Round( ImageEnView1.IEBitmap.Height * WAVE_HEIGHT );
waveWidth := ImageEnView1.IEBitmap.Width / CURVE_COUNT;
ImageEnView1.AddSelPoint( 0, 0 );
ImageEnView1.AddSelPoint( 0, waveHt );
curve := CURVE_MULT;
endX := 0;
for i := 1 to CURVE_COUNT do
begin
endX := endX + waveWidth;
ImageEnView1.AddSelCurve( Round( endX ), waveHt, curve );
curve := -1 * curve; // reverse direction of curve
end;
ImageEnView1.AddSelPoint( ImageEnView1.IEBitmap.Width, 0 );
ImageEnView1.EndSelect();
end;
You can then use ImageEnView1.Proc.CropSel(); to remove the selection, or create layers from the selection:
ImageEnView1.LayersCreateFromSelection();
ImageEnView1.CurrentLayer.SoftShadow.Enabled := True;
Nigel
Xequte Software
www.imageen.com