111 lines
2.5 KiB
Plaintext
111 lines
2.5 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Menus, ieview, imageenview, ExtCtrls, StdCtrls, hyiedefs, hyieutils, imageenproc,
|
|
iexBitmaps, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
Panel1: TPanel;
|
|
ImageEnView1: TImageEnView;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
Button3: TButton;
|
|
Button4: TButton;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
|
Y: Integer);
|
|
procedure ImageEnView1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure Button3Click(Sender: TObject);
|
|
procedure Button4Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
fileName:string;
|
|
public
|
|
{ Public declarations }
|
|
procedure SetTransparent;
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
uses upick;
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
|
|
// reload
|
|
procedure TMainForm.Button2Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.IO.LoadFromFileAuto( filename );
|
|
end;
|
|
|
|
// Pick Transparent color button
|
|
procedure TMainForm.Button1Click(Sender: TObject);
|
|
begin
|
|
PickDialog.Show;
|
|
end;
|
|
|
|
// Load
|
|
procedure TMainForm.Button3Click(Sender: TObject);
|
|
begin
|
|
with ImageEnView1.IO do
|
|
begin
|
|
filename := ExecuteOpenDialog('','',true,0,'');
|
|
LoadFromFileAuto( filename );
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.Button4Click(Sender: TObject);
|
|
begin
|
|
// WARNING: not all file formats support alpha channel
|
|
with ImageEnView1.IO do
|
|
SaveToFile( ExecuteSaveDialog('','',true,0,'') );
|
|
end;
|
|
|
|
procedure TMainForm.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
|
|
var
|
|
cl_rgb:TRGB;
|
|
begin
|
|
// transform client coorindates to bitmap ones
|
|
X := ImageEnView1.XScr2Bmp( X );
|
|
Y := ImageEnView1.YScr2Bmp( Y );
|
|
|
|
// check limits
|
|
if (X>=0) and (X<ImageEnView1.IEBitmap.Width) and
|
|
(Y>=0) and (Y<ImageEnView1.IEBitmap.Height) then
|
|
begin
|
|
cl_rgb := ImageEnView1.IEBitmap.Pixels[X,Y];
|
|
PickDialog.PickColor.Brush.Color := TRGB2TColor( cl_rgb );
|
|
with cl_rgb do
|
|
PickDialog.Label3.Caption := IntToStr(r)+', '+IntToStr(g)+', '+IntToStr(b);
|
|
end;
|
|
|
|
if ssLeft in Shift then
|
|
SetTransparent;
|
|
end;
|
|
|
|
procedure TMainForm.ImageEnView1Click(Sender: TObject);
|
|
begin
|
|
SetTransparent;
|
|
end;
|
|
|
|
procedure TMainForm.SetTransparent;
|
|
var
|
|
cl_rgb:TRGB;
|
|
begin
|
|
cl_rgb := TColor2TRGB( PickDialog.PickColor.Brush.Color );
|
|
ImageEnView1.Proc.SetTransparentColors( cl_rgb, cl_rgb, 0);
|
|
end;
|
|
|
|
|
|
|
|
end.
|