1 ضمیمه
نمایش تصویر پرسنل بصورت دایره
من می خواهم تصویر پرسنل را داخل دایره نمایش دهم (تصویر می بایست Strethc شود و بصورت کامل داخل دایره نمایش داده شود)
ضمیمه 125836
کد زیر را برای اینکار نوشتم در یک فرم درست کار می کند و در فرم دیگر تصویر بصورت Tile نمایش داده می شود.
var
Image2: TImage;
begin
Image2 := TImage.Create(nil); // create instance of TImage
// Image.Picture.RegisterFileFormat('bmp', 'Just a normal BMP File!', TBitmap);
Image2.Picture.LoadFromFile(PubAddress_Pic);
Image2.Stretch := true ;
Shape1.Brush.Bitmap := Image2.Picture.Bitmap;
Shape1.Brush.Bitmap.Canvas.StretchDraw(Shape1.Boun dsRect, Image2.Picture.Bitmap);
نقل قول: نمایش تصویر پرسنل بصورت دایره
const
BORDER = 3;
Var
Bmp : TBitmap;
w, h: Integer;
x, y: Integer;
begin
Bmp:=TBitmap.Create;
try
Bmp.PixelFormat:=pf24bit;
Bmp.Canvas.Font.Name :='Arial';
Bmp.Canvas.Font.Size :=20;
Bmp.Canvas.Font.Color := clWhite;
w :=Bmp.Canvas.TextWidth(IntToStr(sped1.Value));
h :=Bmp.Canvas.TextHeight(IntToStr(sped1.Value));
Bmp.Width := Max(w, h) + BORDER * 2;
Bmp.Height := Max(w, h) + BORDER * 2;
x := (Bmp.Width - w) div 2;
y := (Bmp.Height - h) div 2;
Bmp.Canvas.Brush.Color := clBlue;
Bmp.Canvas.FillRect(Rect(0,0, Bmp.Width, Bmp.Height));
Bmp.Canvas.Brush.Color := clRed;
Bmp.Canvas.Pen.Color := clRed;
Bmp.Canvas.Ellipse(0, 0, Bmp.Width, Bmp.Height);
Bmp.Canvas.TextOut(x, y, IntToStr(sped1.Value));
img1.Picture.Assign(bmp);
// img1.transparent = true;
// img1.stretch = true;
finally
Bmp.Free;
end;
نقل قول: نمایش تصویر پرسنل بصورت دایره
سلام دوست عزیز کد شما یک دایره رسم می کنه و داخلش رو رنگ می زنه بعدم داخلش چیزی می نویسه من می خوام عکس اداری پرسنل رو بصورت دایره ایی نمایش بدم
کد زیر هم تصویر رو به شکل دایره در میاره ولی stretch نمی کنه
procedure TForm2.Button1Click(Sender: TObject);
var
Bitmap : TBitmap ;
begin
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile('c:\pic.BMP');
Form2.Canvas.Brush.Bitmap := Bitmap;
Form2.Canvas.Ellipse(Rect(0,0,100,100));
finally
Form2.Canvas.Brush.Bitmap := nil;
Bitmap.Free;
end;
end;
نقل قول: نمایش تصویر پرسنل بصورت دایره
کد زیر Stretch هم می کنه اما تو برنامه ایی که من استفاده می کنم بازم tile نشون می ده
procedure TForm2.Button1Click(Sender: TObject);
var
Bitmap : TBitmap ;
begin
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile('c:\pic.BMP');
Form2.Canvas.Brush.Bitmap := Bitmap;
Form2.Canvas.Brush.Bitmap.Canvas.StretchDraw(Rect( 0,0,100,100), Bitmap) ;
Form2.Canvas.Ellipse(Rect(0,0,100,100));
finally
Form2.Canvas.Brush.Bitmap := nil;
Bitmap.Free;
end;
end;
نقل قول: نمایش تصویر پرسنل بصورت دایره
چرا باید این کد در یک فرم تصویر را stretch کنه در یک فرم tile نمایش دهد(کد تاپیک بالا)
1 ضمیمه
نقل قول: نمایش تصویر پرسنل بصورت دایره
فايل ضميمه را دانلود كنيد
نقل قول: نمایش تصویر پرسنل بصورت دایره
به نظرم بهترین راه اینه که Image رو بذاری داخل یک Panel (چون Image هندل نداره) و بعد با استفاده از تابع CreateEllipticRgn پنل رو به شکل دایره در بیار
1 ضمیمه
نقل قول: نمایش تصویر پرسنل بصورت دایره
من یک shape روی فرم گذاشتم و bitmap یک image را به آن اختصاص دادم اما لیه های تصویر کیفیت پایینی داره چطور می تونم کیفیت قاب دایره تصویر را دقیقتر کنم
ضمیمه 126053