Forum > Graphics

[SOLVED] Image resize

(1/1)

DanishMale:
Hi all,

I am trying to load an image and resize the image to save on another location in the target size.

Target info:
Height: 132
Width: 220
Aspect ratio: 1.67
Transparent





after resize

Keep aspect ratio from original image

if width is less than target, but height is equal to target merge with empty image and center image

if height is less than target, but width is equal to target merge with empty image and center image



--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---      OrgImage.Picture.LoadFromFile(OpenDialog1.FileName);      OrgHeight := OrgImage.Picture.Height;      OrgWidth := OrgImage.Picture.Width;      AspectRatio := OrgWidth / OrgHeight;      AspectRatio := StrToFloat(Format('%.2f', [AspectRatio]));      if AspectRatio = 1.67 then      begin   // Equals Result dimensions        NewHeight := 132;        NewWidth := 220;      end      else if AspectRatio > 1 then      begin   // Width greater than Height        NewWidth := 220;        NewHeight := Trunc(220 / AspectRatio);                if NewHeight > 132 then                begin                  NewHeight := 132;                   NewWidth := Trunc(132 * AspectRatio);                end;      end      else if AspectRatio < 1 then      begin   // Height greater than Width        NewHeight := 132;        NewWidth := Trunc(132 * AspectRatio);                if NewWidth > 220 then                begin                  NewHeight := 220;                   NewWidth := Trunc(220 / AspectRatio);                end;      end;                    // GotIT working with this code  !!!      NewImage.Height := 132;      NewImage.Width := 220;      NewTop := Trunc((132 - NewHeight) / 2);      NewLeft := Trunc((220 - NewWidth) / 2);      NewImage.Picture.Bitmap.SetSize(220,132);      NewImage.Picture.Bitmap.PixelFormat := pf32bit;      NewImage.Picture.Bitmap.TransparentColor := TColor($D30094);      NewImage.Picture.Bitmap.Canvas.Clear;      NewImage.Picture.Bitmap.Canvas.StretchDraw(Rect(NewLeft,NewTop,                                                                                 NewLeft+NewWidth,NewTop+NewHeight),                                                                                 OrgImage.Picture.Graphic);      NewImage.Picture.SaveToFile(LogoPath+'\Manufacturer\'+Edit5.Text+'.png'); 
I have tried many other ways, however, it seems I am unable to get it working

Navigation

[0] Message Index

Go to full version