program crop; {$mode objfpc}{$h+} uses //readers FPReadBMP, fpreadjpeg, FPReadPNG, fpreadpnm, fpreadtga, FPReadXPM, //writers FPWriteBMP, fpwritejpeg, FPWritePNG, fpwritepnm, fpwritetga, FPWriteXPM, FPImage, SysUtils; var img: TFPMemoryImage; img2: TFPMemoryImage; x1, y1, x2, y2: integer; x: integer; y: integer; begin img := TFPMemoryImage.Create(0, 0); //img.UsePalette := False; img.LoadFromFile(ParamStr(1)); x1 := StrToInt(ParamStr(2)); y1 := StrToInt(ParamStr(3)); x2 := StrToInt(ParamStr(4)); y2 := StrToInt(ParamStr(5)); img2 := TFPMemoryImage.Create(x2 - x1, y2 - y1); //img2.UsePalette := False; for x := x1 to x2 - 1 do for y := y1 to y2 - 1 do img2.Colors[x - x1, y - y1] := img.Colors[x, y]; img2.SaveToFile(ParamStr(6)); img.Free; img2.Free; end.