You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1606 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -75,7 +75,7 @@ type
|
||||
property FillColor: TColor read GetFillColor write SetFillColor;
|
||||
property OutlineColor: TColor read GetOutlineColor write SetOutlineColor;
|
||||
property PaperColor: TColor read GetPaperColor write SetPaperColor;
|
||||
property ScanLinePixels[X, Y: Integer]: TColor read GetScanLinePixel write SetScanLinePixel;
|
||||
property Pixels[X, Y: Integer]: TColor read GetScanLinePixel write SetScanLinePixel;
|
||||
end;
|
||||
|
||||
TTextEditor = class;
|
||||
@ -133,11 +133,61 @@ function GetGColor(const Color: TColor): byte;
|
||||
function GetBColor(const Color: TColor): byte;
|
||||
procedure SprayPoints(aCanvas: TCanvas; X, Y: integer; Radians: integer; PColor: TColor);
|
||||
procedure DLBMPColorReplace(aBitmap: TDLBitmap; ColorFrom, ColorTo: TColor);
|
||||
operator + (const A, B: TRGBATriple): TRGBATriple;
|
||||
operator - (const A, B: TRGBATriple): TRGBATriple;
|
||||
operator * (const A, B: TRGBATriple): TRGBATriple;
|
||||
operator div (const A, B: TRGBATriple): TRGBATriple;
|
||||
function DWordTrans(SrcRow: TRGBATriple): DWORD;
|
||||
function DWordToTriple(SrcRow: DWORD): TRGBATriple;
|
||||
|
||||
implementation
|
||||
|
||||
{$I DLBmpUtils.inc}
|
||||
|
||||
operator + (const A, B: TRGBATriple): TRGBATriple;
|
||||
begin
|
||||
Result.rgbtBlue := A.rgbtBlue + B.rgbtBlue;
|
||||
Result.rgbtRed := A.rgbtRed + B.rgbtRed;
|
||||
Result.rgbtGreen := A.rgbtBlue + B.rgbtGreen;
|
||||
end;
|
||||
|
||||
operator - (const A, B: TRGBATriple): TRGBATriple;
|
||||
begin
|
||||
Result.rgbtBlue := A.rgbtBlue - B.rgbtBlue;
|
||||
Result.rgbtRed := A.rgbtRed - B.rgbtRed;
|
||||
Result.rgbtGreen := A.rgbtBlue - B.rgbtGreen;
|
||||
end;
|
||||
|
||||
operator * (const A, B: TRGBATriple): TRGBATriple;
|
||||
begin
|
||||
Result.rgbtBlue := A.rgbtBlue * B.rgbtBlue;
|
||||
Result.rgbtRed := A.rgbtRed * B.rgbtRed;
|
||||
Result.rgbtGreen := A.rgbtBlue * B.rgbtGreen;
|
||||
end;
|
||||
|
||||
operator div (const A, B: TRGBATriple): TRGBATriple;
|
||||
begin
|
||||
Result.rgbtBlue := A.rgbtBlue div B.rgbtBlue;
|
||||
Result.rgbtRed := A.rgbtRed div B.rgbtRed;
|
||||
Result.rgbtGreen := A.rgbtBlue div B.rgbtGreen;
|
||||
end;
|
||||
|
||||
function DWordTrans(SrcRow: TRGBATriple): DWORD;
|
||||
var RR, GG, BB: integer;
|
||||
begin
|
||||
RR := SrcRow.rgbtRed;
|
||||
GG := SrcRow.rgbtGreen;
|
||||
BB := SrcRow.rgbtBlue;
|
||||
Result := RR + (GG shl 8) and $FF00 + (BB shl 16) and $FF0000;
|
||||
end;
|
||||
|
||||
function DWordToTriple(SrcRow: DWORD): TRGBATriple;
|
||||
begin
|
||||
Result.rgbtBlue := (SrcRow shr 16) and $FF0000;
|
||||
Result.rgbtGreen := (SrcRow shr 8) and $FF00;
|
||||
Result.rgbtRed := SrcRow and $FF;
|
||||
end;
|
||||
|
||||
constructor TDLBitmap.Create;
|
||||
begin
|
||||
inherited;
|
||||
|
@ -515,7 +515,7 @@ begin
|
||||
b := Random(Round(Radians * 0.65));
|
||||
if (temp < 50) then b := 0 - b;
|
||||
if (a * a + b * b < Sqr(Round(Radians * 0.65))) then
|
||||
DLBmp.ScanLinePixels[X + a, Y + b] := PColor;
|
||||
DLBmp.Pixels[X + a, Y + b] := PColor;
|
||||
Radian2 := Radians div 3;
|
||||
temp := Random(100);
|
||||
a := Random(Round(Radian2 * 0.65));
|
||||
@ -524,7 +524,7 @@ begin
|
||||
b := Random(Round(Radian2 * 0.65));
|
||||
if (temp < 50) then b := 0 - b;
|
||||
if (a * a + b * b < Sqr(Round(Radian2 * 0.65))) then
|
||||
DLBmp.ScanLinePixels[X + a, Y + b] := PColor;
|
||||
DLBmp.Pixels[X + a, Y + b] := PColor;
|
||||
Radian3 := Radians * 2 div 3;
|
||||
temp := Random(100);
|
||||
a := Random(Round(Radian3 * 0.65));
|
||||
@ -533,7 +533,7 @@ begin
|
||||
b := Random(Round(Radian3 * 0.65));
|
||||
if (temp < 50) then b := 0 - b;
|
||||
if (a * a + b * b < Sqr(Round(Radian3 * 0.65))) then
|
||||
DLBmp.ScanLinePixels[X + a, Y + b] := PColor;
|
||||
DLBmp.Pixels[X + a, Y + b] := PColor;
|
||||
end;
|
||||
DLBmp.InvalidateScanLineRect(Rect(X - Radians, Y - Radians, X + Radians, Y + Radians));
|
||||
end;
|
||||
@ -614,6 +614,64 @@ begin
|
||||
aBitmap.InvalidateScanLine;
|
||||
end;
|
||||
|
||||
|
||||
procedure StretchLinear(Dest, Src: TDLBitmap); // only for 24bit bitmap
|
||||
var
|
||||
sw, sh, dw, dh, B, N, x, y, i, j, k, nPixelSize: DWord;
|
||||
pLinePrev, pLineNext, pDest, pA, pB, pC, pD: pRGBATriple;
|
||||
begin
|
||||
sw := Src.Width - 1;
|
||||
sh := Src.Height - 1;
|
||||
dw := Dest.Width - 1;
|
||||
dh := Dest.Height - 1;
|
||||
nPixelSize := 3;
|
||||
for i := 0 to dh do
|
||||
begin
|
||||
pDest := Dest.ScanLine[i];
|
||||
y := i * sh div dh;
|
||||
N := dh - i * sh mod dh;
|
||||
pLinePrev := Src.ScanLine[y];
|
||||
Inc(y);
|
||||
if N = dh then
|
||||
begin
|
||||
pLineNext := pLinePrev;
|
||||
end
|
||||
else
|
||||
begin
|
||||
pLineNext := Src.ScanLine[y];
|
||||
end;
|
||||
for j := 0 to dw do
|
||||
begin
|
||||
x := j * sw div dw * nPixelSize;
|
||||
B := dw - j * sw mod dw;
|
||||
pA := pLinePrev;
|
||||
Inc(pA, x);
|
||||
pB := pA;
|
||||
Inc(pB, nPixelSize);
|
||||
pC := pLineNext;
|
||||
Inc(pC, x);
|
||||
pD := pC;
|
||||
Inc(pD, nPixelSize);
|
||||
if B = dw then
|
||||
begin
|
||||
pB := pA;
|
||||
pD := pC;
|
||||
end;
|
||||
for k := 0 to nPixelSize - 1 do
|
||||
begin
|
||||
pDest^ := DWordToTriple(
|
||||
(B * N * DWordTrans(pA^ - pB^ - pC^ + pD^) +
|
||||
dw * N * DWordTrans(pB^) +
|
||||
dh * B * DWordTrans(pC^) + (dw * dh - dh * B - dw * N) *
|
||||
DWordTrans(pD^) +
|
||||
dw * dh div 2) div (dw * dh));
|
||||
Inc(pDest);
|
||||
Inc(pA);
|
||||
Inc(pB);
|
||||
Inc(pC);
|
||||
Inc(pD);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item3>
|
||||
</RequiredPackages>
|
||||
<Units Count="43">
|
||||
<Units Count="44">
|
||||
<Unit0>
|
||||
<Filename Value="lazimageeditor.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -49,7 +49,7 @@
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="14" Y="4"/>
|
||||
<UsageCount Value="75"/>
|
||||
<UsageCount Value="76"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="main.pas"/>
|
||||
@ -62,7 +62,7 @@
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="801"/>
|
||||
<CursorPos X="34" Y="812"/>
|
||||
<UsageCount Value="75"/>
|
||||
<UsageCount Value="76"/>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
</Unit1>
|
||||
@ -357,8 +357,8 @@
|
||||
<UnitName Value="DLBitmap"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="447"/>
|
||||
<CursorPos X="40" Y="460"/>
|
||||
<TopLine Value="164"/>
|
||||
<CursorPos X="15" Y="180"/>
|
||||
<UsageCount Value="16"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit35>
|
||||
@ -391,8 +391,8 @@
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="485"/>
|
||||
<CursorPos X="19" Y="490"/>
|
||||
<TopLine Value="616"/>
|
||||
<CursorPos X="32" Y="661"/>
|
||||
<UsageCount Value="14"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit39>
|
||||
@ -418,92 +418,136 @@
|
||||
<CursorPos X="1" Y="141"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<Filename Value="T:\operatoroverload\Unit1.pas"/>
|
||||
<UnitName Value="Unit1"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="23"/>
|
||||
<CursorPos X="15" Y="29"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit43>
|
||||
</Units>
|
||||
<JumpHistory Count="21" HistoryIndex="20">
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1135" Column="52" TopLine="1123"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="97" Column="90" TopLine="94"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="503" Column="15" TopLine="491"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="190" Column="19" TopLine="171"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="581" Column="96" TopLine="571"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="191" Column="19" TopLine="172"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="460" Column="20" TopLine="440"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="298" Column="27" TopLine="288"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="97" Column="90" TopLine="94"/>
|
||||
<Caret Line="443" Column="26" TopLine="430"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="190" Column="19" TopLine="171"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="191" Column="19" TopLine="172"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="298" Column="27" TopLine="288"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="443" Column="26" TopLine="430"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="131" Column="28" TopLine="120"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="603" Column="33" TopLine="591"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="602" Column="22" TopLine="591"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="602" Column="20" TopLine="591"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="430" Column="17" TopLine="419"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="573" Column="18" TopLine="557"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="573" Column="17" TopLine="557"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="439" Column="56" TopLine="435"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="430" Column="17" TopLine="419"/>
|
||||
<Caret Line="449" Column="52" TopLine="438"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="573" Column="18" TopLine="557"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="573" Column="17" TopLine="557"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="439" Column="56" TopLine="435"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="449" Column="52" TopLine="438"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="41" Column="68" TopLine="34"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="41" Column="44" TopLine="31"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="626" Column="33" TopLine="616"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="620" Column="59" TopLine="606"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="536" Column="13" TopLine="516"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="78" Column="74" TopLine="433"/>
|
||||
<Caret Line="147" Column="47" TopLine="137"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="41" Column="44" TopLine="31"/>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="662" Column="20" TopLine="655"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="661" Column="34" TopLine="651"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="662" Column="30" TopLine="651"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="664" Column="35" TopLine="652"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="665" Column="26" TopLine="653"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="666" Column="40" TopLine="655"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="662" Column="18" TopLine="654"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="184" Column="23" TopLine="167"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="176" Column="5" TopLine="165"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="180" Column="16" TopLine="167"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
Reference in New Issue
Block a user