Zoom without redundancy dot.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1609 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
yangjixian
2011-05-04 02:40:33 +00:00
parent 9b0d833ee6
commit 973fdb4bf6
4 changed files with 83 additions and 83 deletions

View File

@ -144,7 +144,7 @@ operator div (const A, B: TRGBATriple): TRGBATriple;
function DWordTrans(SrcRow: TRGBATriple): DWORD; function DWordTrans(SrcRow: TRGBATriple): DWORD;
function DWordToTriple(SrcRow: DWORD): TRGBATriple; function DWordToTriple(SrcRow: DWORD): TRGBATriple;
procedure StretchLinear(Dest, Src: TDLBitmap); procedure StretchLinear(Dest, Src: TDLBitmap);
procedure StretchDLBMP(Src: TDLBitmap; MultiX, MultiY: integer); procedure StretchDLBMP(ACanvas: TCanvas; Src: TDLBitmap; NewLeft, NewTop, NewWidth, NewHeight: integer);
implementation implementation

View File

@ -675,28 +675,29 @@ begin
Dest.InvalidateScanLine; Dest.InvalidateScanLine;
end; end;
procedure StretchDLBMP(Src: TDLBitmap; MultiX, MultiY: integer); procedure StretchDLBMP(ACanvas: TCanvas; Src: TDLBitmap; NewLeft, NewTop, NewWidth, NewHeight: integer);
var var
sw, sh, dw, dh, i, j, k, l, nPixelSize: DWord; sw, sh, dw, dh, i, j: DWord;
Dest: TDLBitmap; Dest: TDLBitmap;
begin begin
Dest := TDLBitmap.Create; Dest := TDLBitmap.Create;
sw := Src.Width; sw := Max(1, NewWidth div Src.Width);
sh := Src.Height; sh := Max(1, NewHeight div Src.Height);
dw := Src.Width * MultiX; dw := NewWidth - NewLeft;
dh := Src.Height * MultiY; dh := NewHeight - NewTop;
Dest.Width := dw; Dest.Width := dw;
Dest.Height := dh; Dest.Height := dh;
for i := 0 to sh - 1 do for i := 0 to dh - 1 do
for j := 0 to sw - 1 do for j := 0 to dw - 1 do
for k := 0 to MultiY - 1 do Dest.Pixels[j, i] := Src.Pixels[j div sw, i div sh];
for l := 0 to MultiX - 1 do
Dest.Pixels[j * MultiX + k, i * MultiY + l] := Src.Pixels[j, i];
Dest.InvalidateScanLine; Dest.InvalidateScanLine;
//Src.Assign(Dest); ACanvas.Draw(NewLeft, NewTop, Dest);
Src.Width := dw;
Src.Height := dh;
Src.Canvas.Draw(0, 0, Dest);
Dest.Free; Dest.Free;
end; end;

View File

@ -598,14 +598,15 @@ end;
procedure TRGBBitmapCore.StretchDrawTo(ACanvas: TCanvas; procedure TRGBBitmapCore.StretchDrawTo(ACanvas: TCanvas;
DstX, DstY, DstWidth, DstHeight: integer); DstX, DstY, DstWidth, DstHeight: integer);
begin begin
if ACanvas <> nil then // if ACanvas <> nil then
// ACanvas.StretchDraw(Rect(DstX, DstY, DstWidth, DstHeight), Self); // ACanvas.StretchDraw(Rect(DstX, DstY, DstWidth, DstHeight), Self);
// StretchDLBMP(Self, 3, 3); // StretchDLBMP(Self, 3, 3);
begin StretchDLBMP(ACanvas, Self, DstX, DstY, DstWidth, DstHeight);
{begin
ACanvas.AntialiasingMode:=amOff; ACanvas.AntialiasingMode:=amOff;
ACanvas.CopyMode:=cmSrcPaint; ACanvas.CopyMode:=cmSrcPaint;
ACanvas.CopyRect(Rect(DstX, DstY, DstWidth, DstHeight), Self.Canvas, Rect(0,0,Width,Height)); ACanvas.CopyRect(Rect(DstX, DstY, DstWidth, DstHeight), Self.Canvas, Rect(0,0,Width,Height));
end; end; }
end; end;
{ TRGB32BitmapCore } { TRGB32BitmapCore }

View File

@ -49,7 +49,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="14" Y="4"/> <CursorPos X="14" Y="4"/>
<UsageCount Value="76"/> <UsageCount Value="77"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
@ -62,7 +62,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="801"/> <TopLine Value="801"/>
<CursorPos X="34" Y="812"/> <CursorPos X="34" Y="812"/>
<UsageCount Value="76"/> <UsageCount Value="77"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@ -168,12 +168,10 @@
<Unit12> <Unit12>
<Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/> <Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/>
<UnitName Value="Graphics"/> <UnitName Value="Graphics"/>
<EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="386"/> <TopLine Value="1083"/>
<CursorPos X="13" Y="411"/> <CursorPos X="15" Y="1098"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<Filename Value="picturemanager.pas"/> <Filename Value="picturemanager.pas"/>
@ -242,11 +240,10 @@
<Unit21> <Unit21>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<UnitName Value="BmpRGBTypes"/> <UnitName Value="BmpRGBTypes"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="593"/> <TopLine Value="592"/>
<CursorPos X="29" Y="608"/> <CursorPos X="27" Y="604"/>
<UsageCount Value="28"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit21> </Unit21>
@ -358,10 +355,10 @@
<Unit35> <Unit35>
<Filename Value="DLBitmap.pas"/> <Filename Value="DLBitmap.pas"/>
<UnitName Value="DLBitmap"/> <UnitName Value="DLBitmap"/>
<EditorIndex Value="4"/> <EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="124"/> <TopLine Value="132"/>
<CursorPos X="66" Y="143"/> <CursorPos X="42" Y="147"/>
<UsageCount Value="16"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit35> </Unit35>
@ -391,10 +388,11 @@
</Unit38> </Unit38>
<Unit39> <Unit39>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<EditorIndex Value="5"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="671"/> <TopLine Value="673"/>
<CursorPos X="28" Y="701"/> <CursorPos X="27" Y="687"/>
<UsageCount Value="14"/> <UsageCount Value="14"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit39> </Unit39>
@ -432,123 +430,123 @@
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="626" Column="33" TopLine="616"/> <Caret Line="536" Column="13" TopLine="516"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBitmap.pas"/>
<Caret Line="620" Column="59" TopLine="606"/> <Caret Line="147" Column="47" TopLine="137"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="536" Column="13" TopLine="516"/> <Caret Line="662" Column="20" TopLine="655"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="DLBitmap.pas"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="147" Column="47" TopLine="137"/> <Caret Line="661" Column="34" TopLine="651"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="662" Column="20" TopLine="655"/> <Caret Line="662" Column="30" TopLine="651"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="661" Column="34" TopLine="651"/> <Caret Line="664" Column="35" TopLine="652"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="662" Column="30" TopLine="651"/> <Caret Line="665" Column="26" TopLine="653"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="664" Column="35" TopLine="652"/> <Caret Line="666" Column="40" TopLine="655"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="665" Column="26" TopLine="653"/> <Caret Line="662" Column="18" TopLine="654"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBitmap.pas"/>
<Caret Line="666" Column="40" TopLine="655"/> <Caret Line="184" Column="23" TopLine="167"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="DLBmpUtils.inc"/> <Filename Value="DLBitmap.pas"/>
<Caret Line="662" Column="18" TopLine="654"/> <Caret Line="176" Column="5" TopLine="165"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="DLBitmap.pas"/> <Filename Value="DLBitmap.pas"/>
<Caret Line="184" Column="23" TopLine="167"/> <Caret Line="180" Column="16" TopLine="167"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="DLBitmap.pas"/>
<Caret Line="176" Column="5" TopLine="165"/>
</Position13>
<Position14>
<Filename Value="DLBitmap.pas"/>
<Caret Line="180" Column="16" TopLine="167"/>
</Position14>
<Position15>
<Filename Value="picturectrls.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="443" Column="22" TopLine="430"/> <Caret Line="443" Column="22" TopLine="430"/>
</Position15> </Position13>
<Position16> <Position14>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="131" Column="28" TopLine="120"/> <Caret Line="131" Column="28" TopLine="120"/>
</Position14>
<Position15>
<Filename Value="bmprgbtypes.pas"/>
<Caret Line="603" Column="18" TopLine="589"/>
</Position15>
<Position16>
<Filename Value="picturectrls.pas"/>
<Caret Line="443" Column="23" TopLine="430"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="603" Column="18" TopLine="589"/> <Caret Line="131" Column="28" TopLine="116"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="picturectrls.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="443" Column="23" TopLine="430"/> <Caret Line="603" Column="27" TopLine="585"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="DLBitmap.pas"/>
<Caret Line="131" Column="28" TopLine="116"/> <Caret Line="232" Column="14" TopLine="218"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="603" Column="27" TopLine="585"/> <Caret Line="603" Column="17" TopLine="588"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="DLBitmap.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="232" Column="14" TopLine="218"/> <Caret Line="606" Column="16" TopLine="588"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="603" Column="17" TopLine="588"/> <Caret Line="606" Column="16" TopLine="588"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="606" Column="16" TopLine="588"/> <Caret Line="606" Column="17" TopLine="588"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="1158" Column="28" TopLine="1143"/> <Caret Line="606" Column="28" TopLine="591"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="606" Column="16" TopLine="588"/> <Caret Line="608" Column="63" TopLine="593"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="1158" Column="27" TopLine="1143"/> <Caret Line="692" Column="57" TopLine="670"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="606" Column="17" TopLine="588"/> <Caret Line="678" Column="15" TopLine="663"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/> <Filename Value="bmprgbtypes.pas"/>
<Caret Line="1158" Column="75" TopLine="1143"/> <Caret Line="602" Column="22" TopLine="593"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="606" Column="28" TopLine="591"/> <Caret Line="698" Column="7" TopLine="670"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="DLBmpUtils.inc"/>
<Caret Line="608" Column="63" TopLine="593"/> <Caret Line="678" Column="18" TopLine="670"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>