Ex_ писал(а):
Ещё это пригодится.Для этого нужно знать немного дельфи, и как его использовать в hiasm-е, чего я не умею.
Может быть есть у кого готовый вариант?
------------ Дoбавленo в 21.12:
Вот нашел готовый кодец, не знаю как его в хиасм записать
http://www.delphisources.ru/pages/faq/base/bmp_contrast.html
------------ Дoбавленo в 21.14:
Как то так начал
Пример кода
Add(InlineCode,16646685,413,273)
{
DataPoints=#5:Value|
Code=#55:{ **** UBPFD *********** by delphibase.endimus.com ****|38:>> Изменение контрастности изображения|0:|53:Value - значение контрастности на отрезке [-100..100]|53:Local - если True, то применяется "местный контраст",|41:если False, то - "общий" (более красивый)|0:|20:Зависимости: Windows|51:Автор: Fenik, chook_nu@uraltc.ru, Новоуральск|32:Copyright: Николай Федоровских|28:Дата: 14 июля 2003 г.|55:***************************************************** }|0:|68:procedure Contrast(Bitmap: TBitmap; Value: Integer; Local: Boolean);|0:|36: function BLimit(B: Integer): Byte;|7: begin|17: if B < 0 then|17: Result := 0|24: else if B > 255 then|19: Result := 255|8: else|18: Result := B;|6: end;|0:|3:var|19: Dest: pRGBTriple;|19: x, y, mr, mg, mb,|30: W, H, tr, tg, tb: Integer;|13: vd: Double;|0:|5:begin|19: if Value = 0 then|9: Exit;|24: W := Bitmap.Width - 1;|25: H := Bitmap.Height - 1;|15: if Local then|7: begin|14: mR := 128;|14: mG := 128;|14: mB := 128;|5: end|6: else|7: begin|12: tr := 0;|12: tg := 0;|12: tb := 0;|22: for y := 0 to H do|9: begin|33: Dest := Bitmap.ScanLine[y];|24: for x := 0 to W do|11: begin|21: with Dest^ do|13: begin|28: Inc(tb, rgbtBlue);|29: Inc(tg, rgbtGreen);|27: Inc(tr, rgbtRed);|12: end;|18: Inc(Dest);|10: end;|8: end;|30: mB := Trunc(tb / (W * H));|30: mG := Trunc(tg / (W * H));|30: mR := Trunc(tr / (W * H));|6: end;|19: if Value > 0 then|26: vd := 1 + (Value / 10)|6: else|34: vd := 1 - (Sqrt(-Value) / 10);|20: for y := 0 to H do|7: begin|31: Dest := Bitmap.ScanLine[y];|22: for x := 0 to W do|9: begin|19: with Dest^ do|11: begin|61: rgbtBlue := BLimit(mB + Trunc((rgbtBlue - mB) * vd));|63: rgbtGreen := BLimit(mG + Trunc((rgbtGreen - mG) * vd));|59: rgbtRed := BLimit(mR + Trunc((rgbtRed - mR) * vd));|10: end;|16: Inc(Dest);|8: end;|6: end;|19:end;unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|5: end;|0:|14:implementation|0:|4:end.|
}