diff --git a/Examples/General/PNG Image32/MainUnit.dfm b/Examples/General/PNG Image32/MainUnit.dfm index de6be767..6993a78f 100644 --- a/Examples/General/PNG Image32/MainUnit.dfm +++ b/Examples/General/PNG Image32/MainUnit.dfm @@ -11,22 +11,15 @@ object FmPngDemo: TFmPngDemo Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] - Padding.Left = 8 - Padding.Top = 8 - Padding.Right = 8 - Padding.Bottom = 8 OldCreateOrder = False OnCreate = FormCreate - DesignSize = ( - 475 - 279) PixelsPerInch = 96 TextHeight = 13 object ImageDisplay: TImage32 - Left = 8 - Top = 8 - Width = 459 - Height = 262 + Left = 0 + Top = 38 + Width = 475 + Height = 241 Align = alClient Bitmap.DrawMode = dmBlend Bitmap.ResamplerClassName = 'TNearestResampler' @@ -34,7 +27,43 @@ object FmPngDemo: TFmPngDemo Scale = 1.000000000000000000 ScaleMode = smNormal TabOrder = 0 - OnClick = ImageDisplayClick - OnDblClick = ImageDisplayDblClick + ExplicitTop = 8 + ExplicitHeight = 262 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 475 + Height = 38 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object CheckBoxFit: TCheckBox + Left = 184 + Top = 11 + Width = 97 + Height = 19 + Caption = 'Scale to fit' + TabOrder = 0 + OnClick = CheckBoxFitClick + end + end + object ButtonLoad: TButton + Left = 8 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Load...' + TabOrder = 2 + OnClick = ButtonLoadClick + end + object ButtonSave: TButton + Left = 89 + Top = 8 + Width = 75 + Height = 25 + Caption = 'Save...' + TabOrder = 3 + OnClick = ButtonSaveClick end end diff --git a/Examples/General/PNG Image32/MainUnit.lfm b/Examples/General/PNG Image32/MainUnit.lfm deleted file mode 100644 index 46f64944..00000000 --- a/Examples/General/PNG Image32/MainUnit.lfm +++ /dev/null @@ -1,35 +0,0 @@ -object FmPngDemo: TFmPngDemo - Left = 299 - Top = 55 - Caption = 'PNG Demonstration' - ClientHeight = 279 - ClientWidth = 475 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - DesignSize = ( - 475 - 279) - PixelsPerInch = 96 - TextHeight = 13 - object ImageDisplay: TImage32 - Left = 8 - Top = 8 - Width = 459 - Height = 262 - Anchors = [akLeft, akTop, akRight, akBottom] - Bitmap.DrawMode = dmBlend - Bitmap.ResamplerClassName = 'TNearestResampler' - BitmapAlign = baTopLeft - Scale = 1.000000000000000000 - ScaleMode = smNormal - TabOrder = 0 - OnClick = ImageDisplayClick - OnDblClick = ImageDisplayDblClick - end -end diff --git a/Examples/General/PNG Image32/MainUnit.pas b/Examples/General/PNG Image32/MainUnit.pas index 1c0d7e5c..9631a3b1 100644 --- a/Examples/General/PNG Image32/MainUnit.pas +++ b/Examples/General/PNG Image32/MainUnit.pas @@ -3,15 +3,21 @@ interface uses - {$IFDEF FPC} LCLIntf, {$ELSE}Windows, Messages, {$ENDIF} SysUtils, Classes, - Graphics, Controls, Forms, Dialogs, GR32_Image; + {$IFDEF FPC} LCLIntf, {$ELSE} Windows, Messages, {$ENDIF} + SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, + GR32_Image; type TFmPngDemo = class(TForm) ImageDisplay: TImage32; + Panel1: TPanel; + ButtonLoad: TButton; + ButtonSave: TButton; + CheckBoxFit: TCheckBox; procedure FormCreate(Sender: TObject); - procedure ImageDisplayClick(Sender: TObject); - procedure ImageDisplayDblClick(Sender: TObject); + procedure ButtonLoadClick(Sender: TObject); + procedure ButtonSaveClick(Sender: TObject); + procedure CheckBoxFitClick(Sender: TObject); end; var @@ -22,61 +28,89 @@ implementation uses GR32_PNG, GR32_PortableNetworkGraphic; -{$IFDEF FPC} -{$R *.lfm} -{$ELSE} {$R *.dfm} -{$ENDIF} -procedure TFmPngDemo.FormCreate(Sender: TObject); +procedure TFmPngDemo.ButtonLoadClick(Sender: TObject); +var + OpenDialog: TOpenDialog; + PNG: TPortableNetworkGraphic32; begin - if FileExists('..\Demo.png') then - with TPortableNetworkGraphic32.Create do - try - LoadFromFile('..\Demo.png'); - AssignTo(ImageDisplay.Bitmap); - finally - Free; - end - else - raise Exception.Create('File not found: Demo.png'); - - ClientWidth := ImageDisplay.Bitmap.Width + 16; - ClientHeight := ImageDisplay.Bitmap.Height + 16; -end; + OpenDialog := TOpenDialog.Create(Self); + try + OpenDialog.Filter := 'PNG Images (*.png)|*.png|All files (*.*)|*.*'; + OpenDialog.DefaultExt := '.png'; + if not OpenDialog.Execute then + exit; -procedure TFmPngDemo.ImageDisplayClick(Sender: TObject); -begin - with TSaveDialog.Create(Self) do + PNG := TPortableNetworkGraphic32.Create; try - Filter := 'PNG Images (*.png)|*.png'; - DefaultExt := '.png'; - if Execute then - begin - with TPortableNetworkGraphic32.Create do - try - AdaptiveFilterMethods := [aafmSub, aafmUp, aafmAverage]; - Assign(ImageDisplay.Bitmap); - InterlaceMethod := imAdam7; - SaveToFile(FileName); - finally - Free; - end; - end; + PNG.LoadFromFile(OpenDialog.FileName); + PNG.AssignTo(ImageDisplay.Bitmap); finally - Free; + PNG.Free; end; + finally + OpenDialog.Free; + end; end; -procedure TFmPngDemo.ImageDisplayDblClick(Sender: TObject); +procedure TFmPngDemo.ButtonSaveClick(Sender: TObject); +var + SaveDialog: TSaveDialog; + PNG: TPortableNetworkGraphic32; begin - with TPortableNetworkGraphic32.Create do + SaveDialog := TSaveDialog.Create(Self); + try + SaveDialog.Filter := 'PNG Images (*.png)|*.png|All files (*.*)|*.*'; + SaveDialog.DefaultExt := '.png'; + if not SaveDialog.Execute then + exit; + + PNG := TPortableNetworkGraphic32.Create; try - Assign(ImageDisplay.Bitmap); - SaveToFile('Test.png'); + PNG.AdaptiveFilterMethods := [aafmSub, aafmUp, aafmAverage]; + PNG.Assign(ImageDisplay.Bitmap); + PNG.InterlaceMethod := imAdam7; + PNG.SaveToFile(SaveDialog.FileName); finally - Free; + PNG.Free; end; + finally + SaveDialog.Free; + end; +end; + +procedure TFmPngDemo.CheckBoxFitClick(Sender: TObject); +begin + if (TCheckBox(Sender).Checked) then + begin + ImageDisplay.ScaleMode := smResize; + ImageDisplay.BitmapAlign := baCenter; + end else + begin + ImageDisplay.ScaleMode := smNormal; + ImageDisplay.BitmapAlign := baTopLeft; + end; +end; + +procedure TFmPngDemo.FormCreate(Sender: TObject); +begin +{$IFNDEF FPC} + ImageDisplay.Margins.Top := 8; + ImageDisplay.Margins.Left := 8; + ImageDisplay.Margins.Bottom := 8; + ImageDisplay.Margins.Right := 8; + ImageDisplay.AlignWithMargins := True; +{$ENDIF} + + if FileExists('..\Demo.png') then + with TPortableNetworkGraphic32.Create do + try + LoadFromFile('..\Demo.png'); + AssignTo(ImageDisplay.Bitmap); + finally + Free; + end; end; end. diff --git a/Examples/General/PNG Image32/PNG_GR32_Demo.dpr b/Examples/General/PNG Image32/PNG_GR32_Demo.dpr index c4456277..5b51688d 100644 --- a/Examples/General/PNG Image32/PNG_GR32_Demo.dpr +++ b/Examples/General/PNG Image32/PNG_GR32_Demo.dpr @@ -2,9 +2,7 @@ program PNG_GR32_Demo; uses Forms, - MainUnit in 'MainUnit.pas' {FmPngDemo}, - GR32_Png in '..\GR32_Png.pas', - GR32_PortableNetworkGraphic in '..\GR32_PortableNetworkGraphic.pas'; + MainUnit in 'MainUnit.pas' {FmPngDemo}; {$R *.res} diff --git a/Examples/General/PNG Image32/PNG_GR32_Demo.dproj b/Examples/General/PNG Image32/PNG_GR32_Demo.dproj index 4b487480..1eddeaf6 100644 --- a/Examples/General/PNG Image32/PNG_GR32_Demo.dproj +++ b/Examples/General/PNG Image32/PNG_GR32_Demo.dproj @@ -83,8 +83,6 @@
FmPngDemo
- - Base diff --git a/Examples/General/PNG Image32/PNG_GR32_Demo.lpi b/Examples/General/PNG Image32/PNG_GR32_Demo.lpi index 2d574c20..1a06ac72 100644 --- a/Examples/General/PNG Image32/PNG_GR32_Demo.lpi +++ b/Examples/General/PNG Image32/PNG_GR32_Demo.lpi @@ -1,13 +1,13 @@ - + + - <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -22,11 +22,11 @@ <Version Value="11"/> <PathDelim Value="\"/> <Target> - <Filename Value="PNG_GR32_Demo.exe"/> + <Filename Value=".\bin\PNG_GR32_Demo.exe"/> </Target> <SearchPaths> - <IncludeFiles Value="..;..\..;..\..\Graphics32\Source"/> - <OtherUnitFiles Value="..;..\.."/> + <IncludeFiles Value="..\..\..\Source"/> + <OtherUnitFiles Value="..;..\..;..\..\..\Source"/> <UnitOutputDirectory Value="$(TargetCPU)-$(TargetOS)"/> </SearchPaths> <Parsing> @@ -44,7 +44,7 @@ </CodeGeneration> <Linking> <Debugging> - <DebugInfoType Value="dsStabs"/> + <DebugInfoType Value="dsDwarf2"/> </Debugging> <LinkSmart Value="True"/> <Options> @@ -73,26 +73,24 @@ <PackageName Value="LCL"/> </Item2> </RequiredPackages> - <Units Count="14"> + <Units Count="20"> <Unit0> <Filename Value="PNG_GR32_Demo.lpr"/> <IsPartOfProject Value="True"/> - <CursorPos X="15" Y="8"/> - <UsageCount Value="37"/> - <Loaded Value="True"/> + <EditorIndex Value="-1"/> + <CursorPos X="5" Y="11"/> + <UsageCount Value="39"/> <DefaultSyntaxHighlighter Value="Delphi"/> </Unit0> <Unit1> <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <IsVisibleTab Value="True"/> - <EditorIndex Value="1"/> + <EditorIndex Value="-1"/> <TopLine Value="4166"/> <CursorPos X="6" Y="4181"/> <UsageCount Value="16"/> <Bookmarks Count="1"> <Item0 Y="5159" ID="1"/> </Bookmarks> - <Loaded Value="True"/> <DefaultSyntaxHighlighter Value="Delphi"/> </Unit1> <Unit2> @@ -106,27 +104,32 @@ <TopLine Value="1995"/> <CursorPos X="13" Y="2022"/> <UsageCount Value="10"/> + <DefaultSyntaxHighlighter Value="Delphi"/> </Unit3> <Unit4> <Filename Value="..\..\..\..\VSTPack\Source\GUI\DAV_GuiPngClasses.pas"/> <TopLine Value="119"/> <CursorPos X="38" Y="146"/> <UsageCount Value="8"/> + <DefaultSyntaxHighlighter Value="Delphi"/> </Unit4> <Unit5> <Filename Value="..\GR32_Png.pas"/> <UnitName Value="GR32_PNG"/> - <EditorIndex Value="2"/> + <EditorIndex Value="-1"/> <TopLine Value="1442"/> <CursorPos X="41" Y="1469"/> <UsageCount Value="16"/> - <Loaded Value="True"/> <DefaultSyntaxHighlighter Value="Delphi"/> </Unit5> <Unit6> <Filename Value="MainUnit.pas"/> - <EditorIndex Value="3"/> - <CursorPos X="30" Y="7"/> + <ComponentName Value="FmPngDemo"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <IsVisibleTab Value="True"/> + <TopLine Value="70"/> + <CursorPos Y="103"/> <UsageCount Value="17"/> <Loaded Value="True"/> <DefaultSyntaxHighlighter Value="Delphi"/> @@ -137,17 +140,20 @@ <TopLine Value="191"/> <CursorPos X="39" Y="194"/> <UsageCount Value="8"/> + <DefaultSyntaxHighlighter Value="Delphi"/> </Unit7> <Unit8> <Filename Value="..\..\..\..\VSTPack\Source\GUI\DAV_GuiPngChunks.pas"/> <TopLine Value="40"/> <UsageCount Value="9"/> + <DefaultSyntaxHighlighter Value="Delphi"/> </Unit8> <Unit9> <Filename Value="..\..\..\..\VSTPack\Source\GUI\DAV_GuiPngCoder.pas"/> <TopLine Value="649"/> <CursorPos Y="657"/> <UsageCount Value="9"/> + <DefaultSyntaxHighlighter Value="Delphi"/> </Unit9> <Unit10> <Filename Value="..\..\Packages\GR32_L.pas"/> @@ -187,139 +193,59 @@ <UsageCount Value="9"/> <DefaultSyntaxHighlighter Value="Delphi"/> </Unit13> + <Unit14> + <Filename Value="..\..\..\Source\GR32.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="1373"/> + <CursorPos X="67" Y="1388"/> + <UsageCount Value="10"/> + <DefaultSyntaxHighlighter Value="Delphi"/> + </Unit14> + <Unit15> + <Filename Value="..\..\..\Source\Packages\GR32_Lazarus.pas"/> + <EditorIndex Value="-1"/> + <UsageCount Value="10"/> + <DefaultSyntaxHighlighter Value="Delphi"/> + </Unit15> + <Unit16> + <Filename Value="MainUnit.dfm"/> + <EditorIndex Value="-1"/> + <CursorPos X="106" Y="7"/> + <UsageCount Value="10"/> + <DefaultSyntaxHighlighter Value="LFM"/> + </Unit16> + <Unit17> + <Filename Value="D:\Development\Lazarus\lcl\interfaces\win32\interfaces.pp"/> + <UnitName Value="Interfaces"/> + <EditorIndex Value="-1"/> + <UsageCount Value="10"/> + </Unit17> + <Unit18> + <Filename Value="PNG_GR32_Demo.dpr"/> + <EditorIndex Value="-1"/> + <UsageCount Value="10"/> + <DefaultSyntaxHighlighter Value="Delphi"/> + </Unit18> + <Unit19> + <Filename Value="..\..\..\Source\GR32_PolygonsAggLite.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="1600"/> + <CursorPos X="39" Y="1617"/> + <UsageCount Value="10"/> + <DefaultSyntaxHighlighter Value="Delphi"/> + </Unit19> </Units> - <JumpHistory Count="30" HistoryIndex="29"> - <Position1> - <Filename Value="..\GR32_Png.pas"/> - <Caret Line="1369" Column="3" TopLine="1368"/> - </Position1> - <Position2> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4177" Column="35" TopLine="4173"/> - </Position2> - <Position3> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4189" Column="34" TopLine="4161"/> - </Position3> - <Position4> - <Filename Value="..\GR32_Png.pas"/> - <Caret Line="1457" Column="3" TopLine="1441"/> - </Position4> - <Position5> - <Filename Value="..\GR32_Png.pas"/> - <Caret Line="1464" Column="53" TopLine="1441"/> - </Position5> - <Position6> - <Filename Value="..\GR32_Png.pas"/> - <Caret Line="1469" Column="41" TopLine="1442"/> - </Position6> - <Position7> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4179" Column="28" TopLine="4166"/> - </Position7> - <Position8> - <Filename Value="..\GR32_Png.pas"/> - <Caret Line="1469" Column="41" TopLine="1476"/> - </Position8> - <Position9> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4180" Column="28" TopLine="4163"/> - </Position9> - <Position10> - <Filename Value="..\GR32_Png.pas"/> - <Caret Line="1469" Column="41" TopLine="1442"/> - </Position10> - <Position11> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4184" TopLine="4168"/> - </Position11> - <Position12> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4185" TopLine="4168"/> - </Position12> - <Position13> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4186" TopLine="4168"/> - </Position13> - <Position14> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4196" Column="9" TopLine="4168"/> - </Position14> - <Position15> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4193" TopLine="4168"/> - </Position15> - <Position16> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4180" TopLine="4168"/> - </Position16> - <Position17> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4184" TopLine="4168"/> - </Position17> - <Position18> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4185" TopLine="4168"/> - </Position18> - <Position19> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4186" TopLine="4168"/> - </Position19> - <Position20> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4194" TopLine="4168"/> - </Position20> - <Position21> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4198" TopLine="4171"/> - </Position21> - <Position22> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4199" TopLine="4172"/> - </Position22> - <Position23> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4200" TopLine="4173"/> - </Position23> - <Position24> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4207" TopLine="4191"/> - </Position24> - <Position25> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4180" Column="34" TopLine="4164"/> - </Position25> - <Position26> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4179" Column="41" TopLine="4164"/> - </Position26> - <Position27> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4180" Column="9" TopLine="4164"/> - </Position27> - <Position28> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4159" Column="26" TopLine="4153"/> - </Position28> - <Position29> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4182" Column="30" TopLine="4155"/> - </Position29> - <Position30> - <Filename Value="..\GR32_PortableNetworkGraphic.pas"/> - <Caret Line="4159" Column="13" TopLine="4150"/> - </Position30> - </JumpHistory> + <JumpHistory HistoryIndex="-1"/> </ProjectOptions> <CompilerOptions> <Version Value="11"/> <PathDelim Value="\"/> <Target> - <Filename Value="PNG_GR32_Demo.exe"/> + <Filename Value=".\bin\PNG_GR32_Demo.exe"/> </Target> <SearchPaths> - <IncludeFiles Value="..;..\.."/> - <OtherUnitFiles Value="..;..\.."/> + <IncludeFiles Value="..\..\..\Source"/> + <OtherUnitFiles Value="..;..\..;..\..\..\Source"/> <UnitOutputDirectory Value="$(TargetCPU)-$(TargetOS)"/> </SearchPaths> <Parsing> @@ -336,6 +262,7 @@ <Linking> <Debugging> <GenerateDebugInfo Value="False"/> + <DebugInfoType Value="dsDwarf2"/> <UseLineInfoUnit Value="False"/> <StripSymbols Value="True"/> </Debugging> diff --git a/Examples/General/PNG Image32/PNG_GR32_Demo.lpr b/Examples/General/PNG Image32/PNG_GR32_Demo.lpr deleted file mode 100644 index d3b34e1a..00000000 --- a/Examples/General/PNG Image32/PNG_GR32_Demo.lpr +++ /dev/null @@ -1,18 +0,0 @@ -program PNG_GR32_Demo; - -{$R *.res} - -uses - Interfaces, - Forms, - GR32_Lazarus, - GR32_PortableNetworkGraphic, - GR32_Png, - MainUnit; - -begin - Application.Title:='GR32 PNG Demo'; - Application.Initialize; - Application.CreateForm(TFmPngDemo, FmPngDemo); - Application.Run; -end.