PDA

View Full Version : گرفتن عکس از کلید و ذخیره ی آن



Felony
شنبه 11 خرداد 1387, 12:57 عصر
:متفکر:آقا من میخوام یک کلید تو برنامه داشته باشم که کاربر Caption اون رو بتونه تغییر بده و بعد از این کار بتونه عکس کلید رو ذخیره کنه البته همراه با کپشنش.

:چشمک:برنامه ی زیر رو که پیوست کردم ببینید منظورم رو میفهمید میخوام یه چیز شبیه این بنویسم.

:قلب:ممنون

B_YAGHOBI
شنبه 11 خرداد 1387, 23:27 عصر
اين تابع را داشته باش :



uses Jpeg;

procedure SaveControlImageToFile(AControl : TWinControl; AFileName : string; UseJpegFormat : boolean = true);
Var Canvas : TCanvas; Bmp : TBitmap; Jpg : TJpegImage ;
Begin
try
Canvas := TCanvas.Create;
Canvas.Handle := GetDc(AControl.Handle);
Bmp := TBitmap.Create;
Bmp.Width := AControl.Width;
Bmp.Height := AControl.Height;
bmp.PixelFormat :=pf24bit;
Bmp.Canvas.CopyRect(Canvas.ClipRect, Canvas, Canvas.ClipRect);
if UseJpegFormat then
begin
Jpg := TJpegImage.Create;
jpg.PixelFormat := jf24bit;
Jpg.Assign(Bmp);
Jpg.SaveToFile(ChangeFileExt(AFileName,'.jpg'));
end
Else
Bmp.SaveToFile(ChangeFileExt(AFileName,'.bmp'));
finally
ReleaseDC(AControl.Handle, Canvas.Handle);
FreeAndNil(Bmp);
if UseJpegFormat then
FreeAndNil(Jpg);
FreeAndNil(Canvas);
end;
end;



مثال :

procedure TForm6.Button2Click(Sender: TObject);
begin
SaveControlImageToFile( Button1, 'D:\Button1.jpg' ) ;
end;

Felony
دوشنبه 13 خرداد 1387, 05:05 صبح
ممنون فقط من درست حسابی از این سورس سر در نیاوردم کسی نیست یه نمونه داشته باشه ؟

B_YAGHOBI
دوشنبه 13 خرداد 1387, 14:48 عصر
يك فانكشن نوشته شده بنام SaveControlImageToFile كه كنترلي كي ميخواهيد از آن عكس بگيريد

و همچنين نام فايلي كه ميخواهيد در آن عكس ذخيره شود را ميگيريد و آنرا آيجاد ميكند :



SaveControlImageToFile( Button1, 'D:\Button1.jpg' ) ;

mohsen_r
دوشنبه 23 دی 1387, 12:38 عصر
اين تابع را داشته باش :



uses Jpeg;

procedure SaveControlImageToFile(AControl : TWinControl; AFileName : string; UseJpegFormat : boolean = true);
Var Canvas : TCanvas; Bmp : TBitmap; Jpg : TJpegImage ;
Begin
try
Canvas := TCanvas.Create;
Canvas.Handle := GetDc(AControl.Handle);
Bmp := TBitmap.Create;
Bmp.Width := AControl.Width;
Bmp.Height := AControl.Height;
bmp.PixelFormat :=pf24bit;
Bmp.Canvas.CopyRect(Canvas.ClipRect, Canvas, Canvas.ClipRect);
if UseJpegFormat then
begin
Jpg := TJpegImage.Create;
jpg.PixelFormat := jf24bit;
Jpg.Assign(Bmp);
Jpg.SaveToFile(ChangeFileExt(AFileName,'.jpg'));
end
Else
Bmp.SaveToFile(ChangeFileExt(AFileName,'.bmp'));
finally
ReleaseDC(AControl.Handle, Canvas.Handle);
FreeAndNil(Bmp);
if UseJpegFormat then
FreeAndNil(Jpg);
FreeAndNil(Canvas);
end;
end;



مثال :

procedure TForm6.Button2Click(Sender: TObject);
begin
SaveControlImageToFile( Button1, 'D:\Button1.jpg' ) ;
end;

با تشكر آيا امكان اين هست كه از يك ديتابيس اطلاعات خونده شه و فيلدي كه از نوع عكس مي باشد به همين روش ذخيره گردد