|
|
#1
|
||||
|
||||
Python то Pascal
Доброго денечка, уважаемые, сразу оговорюсь, что в Питоне я не силен, так что прощу вашей помощи в переводе на паскаль данного скриптика:
Код:
def get_skin_ratio(im): im = im.crop((int(im.size[0]*0.2), int(im.size[1]*0.2), im.size[0]-int(im.size[0]*0.2), im.size[1]-int(im.size[1]*0.2))) skin = sum([count for count, rgb in im.getcolors(im.size[0]*im.size[1]) if rgb[0]>60 and rgb[1]<(rgb[0]*0.85) and rgb[2]<(rgb[0]*0.7) and rgb[1]>(rgb[0]*0.4) and rgb[2]>(rgb[0]*0.2)]) return float(skin)/float(im.size[0]*im.size[1]) Думаю, что должно выглядеть как то так: Код:
procedure TForm1.Button24Click(Sender: TObject); type PCardArray = ^TCardArray; TCardArray = array [0 .. 8191] of Cardinal; var x, y: Cardinal; Line: PCardArray; R, G, B: Byte; begin Nude := 0; with Image1.Picture.BitMap do begin PixelFormat := pf32bit; for y := 0 to Height - 1 do begin Line := ScanLine[y]; for x := 0 to Width - 1 do begin R := GetRValue(Line[x]); G := GetGValue(Line[x]); B := GetBValue(Line[x]); if (R > 60) and (G < (R * 0.85)) and (B < (R * 0.7)) and (G > (R * 0.4)) and (B > (R * 0.2)) then Line[x] := $FFFFFF;//Но, ничего не происходит end; end; end; end; |