{"id":348,"date":"2024-04-08T08:00:00","date_gmt":"2024-04-08T11:00:00","guid":{"rendered":"https:\/\/adrianosantostreina.com.br\/blog\/?p=348"},"modified":"2024-04-14T23:51:55","modified_gmt":"2024-04-15T02:51:55","slug":"melhorando-graficos-no-delphi-com-skia-4-delphi","status":"publish","type":"post","link":"https:\/\/adrianosantostreina.com.br\/blog\/melhorando-graficos-no-delphi-com-skia-4-delphi\/","title":{"rendered":"Melhorando Gr\u00e1ficos no Delphi com Skia 4 Delphi"},"content":{"rendered":"\n<p>No mundo do desenvolvimento de software, a apresenta\u00e7\u00e3o visual n\u00e3o \u00e9 apenas um complemento; \u00e9 uma parte essencial da experi\u00eancia do usu\u00e1rio. Aqui entra o Skia, uma biblioteca gr\u00e1fica renomada que alimenta alguns dos sistemas e aplica\u00e7\u00f5es mais populares do mundo, como Google Chrome e Android. Para desenvolvedores Delphi, o desafio sempre foi como aproveitar essa poderosa biblioteca em seus projetos. \u00c9 aqui que o Skia4Delphi se torna um game-changer, oferecendo uma ponte robusta para integrar as capacidades gr\u00e1ficas do Skia em aplica\u00e7\u00f5es Delphi.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>A origem do Skia4Delphi<\/strong><\/p>\n\n\n\n<p>O Skia4Delphi \u00e9 o resultado direto da necessidade de trazer capacidades gr\u00e1ficas avan\u00e7adas e desempenho de renderiza\u00e7\u00e3o superior para o ambiente de desenvolvimento Delphi. Este projeto ambicioso pode ser atribu\u00eddo \u00e0 vis\u00e3o e dedica\u00e7\u00e3o de Paulo C\u00e9sar e Vinicius Felipe, dois profissionais com uma paix\u00e3o profunda por melhorar a experi\u00eancia de desenvolvimento em Delphi. Reconhecendo a lacuna nas capacidades gr\u00e1ficas dispon\u00edveis para desenvolvedores Delphi e a pot\u00eancia do mecanismo Skia, eles embarcaram na jornada de integrar o Skia ao Delphi, facilitando assim a cria\u00e7\u00e3o de aplica\u00e7\u00f5es mais ricas e visuais.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Por que usar o Skia4Delphi?<\/strong><\/p>\n\n\n\n<p>O Skia4Delphi n\u00e3o \u00e9 apenas uma ponte para integrar um poderoso mecanismo gr\u00e1fico ao ambiente Delphi; \u00e9 uma transforma\u00e7\u00e3o completa da forma como os desenvolvedores podem abordar gr\u00e1ficos e renderiza\u00e7\u00e3o em suas aplica\u00e7\u00f5es. As vantagens de adotar o Skia4Delphi s\u00e3o vastas e impactam significativamente a qualidade, o desempenho e a efici\u00eancia do desenvolvimento. Aqui est\u00e3o alguns dos benef\u00edcios mais not\u00e1veis:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Desempenho superior e fluidez em aplica\u00e7\u00f5es Android\/iOS<\/h3>\n\n\n\n<p>Para aplica\u00e7\u00f5es Android\/iOS desenvolvidas em Delphi, o Skia4Delphi oferece uma melhoria not\u00e1vel na fluidez e no desempenho. A otimiza\u00e7\u00e3o espec\u00edfica para dispositivos Android\/iOS significa que os aplicativos n\u00e3o s\u00f3 rodam mais suavemente, mas tamb\u00e9m respondem mais rapidamente \u00e0s intera\u00e7\u00f5es dos usu\u00e1rios, um aspecto crucial para manter os usu\u00e1rios engajados.<\/p>\n\n\n\n<p>Al\u00e9m substitu\u00edmos o motor do Firemonkey para o do Skia quando habilitamos ele em nossos aplicativos, gerando um ganho expressivo de velocidades nas aplica\u00e7\u00f5es. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qualidade visual aprimorada<\/h3>\n\n\n\n<p>A integra\u00e7\u00e3o com o Skia permite uma renderiza\u00e7\u00e3o de objetos com qualidade superior, reduzindo o serrilhado em ret\u00e2ngulos, c\u00edrculos e outras formas geom\u00e9tricas. Isso \u00e9 particularmente importante para aplica\u00e7\u00f5es que necessitam de uma apresenta\u00e7\u00e3o visual impec\u00e1vel, garantindo que os elementos gr\u00e1ficos apare\u00e7am n\u00edtidos e claros em qualquer tamanho ou resolu\u00e7\u00e3o de tela.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Funcionalidades Avan\u00e7adas<\/h3>\n\n\n\n<p>O Skia4Delphi desbloqueia uma s\u00e9rie de funcionalidades avan\u00e7adas que antes eram desafiadoras ou imposs\u00edveis de implementar em Delphi, incluindo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Carregamento de Arquivos SVG:<\/strong> Isso permite a cria\u00e7\u00e3o de anima\u00e7\u00f5es ricas e din\u00e2micas que podem elevar a experi\u00eancia do usu\u00e1rio a um novo patamar. Utilizar SVGs significa que os gr\u00e1ficos s\u00e3o escal\u00e1veis sem perda de qualidade, perfeitos para uma variedade de resolu\u00e7\u00f5es de tela.<\/li>\n\n\n\n<li><strong>Cria\u00e7\u00e3o de Arquivos PDF:<\/strong> Com o Skia4Delphi, os desenvolvedores t\u00eam a capacidade de gerar documentos PDF diretamente de suas aplica\u00e7\u00f5es. Isso \u00e9 ideal para relat\u00f3rios, recibos, e qualquer outra funcionalidade que requeira a exporta\u00e7\u00e3o de documentos.<\/li>\n<\/ul>\n\n\n\n<p>Tamb\u00e9m \u00e9 poss\u00edvel carregar in\u00fameros tipos de arquivos na aplica\u00e7\u00e3o que antes n\u00e3o eram poss\u00edveis. Veja:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"514\" height=\"809\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-2.png\" alt=\"\" class=\"wp-image-349\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-2.png 514w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-2-191x300.png 191w\" sizes=\"(max-width: 514px) 100vw, 514px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Redu\u00e7\u00e3o de C\u00f3digo e Complexidade<\/h3>\n\n\n\n<p>Al\u00e9m das melhorias visuais e de desempenho, o Skia4Delphi tamb\u00e9m ajuda a reduzir a quantidade de c\u00f3digo necess\u00e1rio para realizar opera\u00e7\u00f5es gr\u00e1ficas complexas. Isso simplifica o processo de desenvolvimento, permitindo que os desenvolvedores se concentrem mais na l\u00f3gica do aplicativo e menos nos detalhes t\u00e9cnicos da renderiza\u00e7\u00e3o gr\u00e1fica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compatibilidade e Flexibilidade<\/h3>\n\n\n\n<p>Uma das grandes vantagens do Skia4Delphi \u00e9 sua compatibilidade e flexibilidade. Desenvolvedores podem agora criar aplica\u00e7\u00f5es que s\u00e3o visualmente consistentes e perform\u00e1ticas em v\u00e1rias plataformas, aproveitando o mesmo conjunto de ferramentas e capacidades que o Skia oferece.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Funcionalidades do Skia4Delphi<\/h3>\n\n\n\n<p>O Skia4Delphi se destaca por oferecer uma ampla gama de funcionalidades, incluindo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Canvas 2D e Layout de Texto:<\/strong> Ferramentas poderosas para desenho 2D e manipula\u00e7\u00e3o avan\u00e7ada de texto.<\/li>\n\n\n\n<li><strong>Rasteriza\u00e7\u00e3o de software em CPU:<\/strong> Garante que gr\u00e1ficos complexos sejam renderizados de forma eficiente, mesmo sem hardware gr\u00e1fico especializado.<\/li>\n\n\n\n<li><strong>Renderiza\u00e7\u00e3o acelerada por GPU:<\/strong> Utiliza a capacidade da GPU para renderiza\u00e7\u00e3o r\u00e1pida e suave, crucial para aplica\u00e7\u00f5es de alta performance.<\/li>\n\n\n\n<li><strong>Suporte a Idiomas de Direita para Esquerda (RTL):<\/strong> Essencial para aplica\u00e7\u00f5es globais que precisam de suporte a idiomas como \u00e1rabe e hebraico.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Substitui\u00e7\u00e3o do Renderizador FMX<\/h3>\n\n\n\n<p>Com o Skia4Delphi, \u00e9 poss\u00edvel substituir o motor gr\u00e1fico do FireMonkey, permitindo que as aplica\u00e7\u00f5es Delphi FMX tirem total proveito das capacidades avan\u00e7adas do Skia. Isso n\u00e3o s\u00f3 melhora a qualidade e o desempenho da renderiza\u00e7\u00e3o, mas tamb\u00e9m abre novas possibilidades para o desenvolvimento de interfaces de usu\u00e1rio ricas e visualmente impressionantes em plataformas cruzadas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Benchmark<\/h3>\n\n\n\n<p>Para evidenciar a efici\u00eancia e a performance do Skia4Delphi, foram executados diversos testes de desempenho em uma ampla gama de dispositivos. Estes testes foram cuidadosamente projetados para simular cen\u00e1rios reais de uso, destacando como o Skia4Delphi pode otimizar a renderiza\u00e7\u00e3o gr\u00e1fica em aplica\u00e7\u00f5es Delphi. Abaixo, apresentamos uma tabela que resume alguns desses resultados, ilustrando o impacto significativo que o Skia4Delphi tem na melhoria da performance em diferentes ambientes e configura\u00e7\u00f5es de hardware.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"696\" height=\"584\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-3.png\" alt=\"\" class=\"wp-image-353\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-3.png 696w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-3-300x252.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"632\" height=\"227\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-4.png\" alt=\"\" class=\"wp-image-354\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-4.png 632w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-4-300x108.png 300w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/><\/figure><\/div>\n\n\n<p>**Fonte: informa\u00e7\u00f5es extra\u00eddas do GitHub do Skia4Delphi<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/adrianosantos.link\/treinamentos\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"150\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1.png\" alt=\"\" class=\"wp-image-222\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1.png 800w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1-300x56.png 300w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1-768x144.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Skia Canvas: Potencialize sua renderiza\u00e7\u00e3o gr\u00e1fica<\/h3>\n\n\n\n<p>O Skia4Delphi \u00e9 uma ferramenta poderosa que coloca capacidades gr\u00e1ficas avan\u00e7adas ao alcance dos desenvolvedores Delphi. Com o Skia Canvas, voc\u00ea obt\u00e9m acesso direto a uma ampla gama de funcionalidades de desenho e renderiza\u00e7\u00e3o, permitindo a cria\u00e7\u00e3o de gr\u00e1ficos 2D complexos, manipula\u00e7\u00e3o de imagens, e efeitos visuais sofisticados com facilidade e efici\u00eancia. Esta liberdade para desenhar diretamente sobre o canvas abre novas possibilidades para o design de UI\/UX, permitindo que desenvolvedores criem interfaces de usu\u00e1rio din\u00e2micas, visualmente ricas e altamente interativas. Seja melhorando a est\u00e9tica de uma aplica\u00e7\u00e3o ou criando visualiza\u00e7\u00f5es de dados intricadas, o Skia Canvas \u00e9 a chave para elevar seus projetos a um novo n\u00edvel de profissionalismo e polimento.<\/p>\n\n\n\n<p><strong>Bitmaps<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:delphi decode:true \" >uses\n  System.Skia, FMX.Skia.Canvas;\nbegin\n  var LBitmap := TBitmap.Create(300, 300);\n  try\n    LBitmap.Canvas.BeginScene;\n    try\n      var LCanvas: ISkCanvas := TSkCanvasCustom(LBitmap.Canvas).Canvas;\n      \/\/ Draw using Skia canvas (LCanvas) directly to unlock new features...\n    finally\n      LBitmap.Canvas.EndScene;\n    end;\n  finally\n    LBitmap.Free;\n  end;\nend;<\/pre><\/div>\n\n\n\n<p><strong>Controles no Form<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:delphi decode:true \" >type\n  TMyControl = class(TControl)\n  protected\n    procedure Paint; override;\n  end;\nimplementation\nuses\n  System.Skia, FMX.Skia.Canvas;\nprocedure TMyControl.Paint;\nbegin\n  var LCanvas: ISkCanvas := TSkCanvasCustom(Canvas).Canvas;\n  \/\/ Draw using Skia canvas (LCanvas) directly to unlock new features...\nend;<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Right-to-Left<\/h3>\n\n\n\n<p>O suporte a texto da direita para a esquerda (RTL) \u00e9 uma funcionalidade crucial para aplica\u00e7\u00f5es globais, permitindo que desenvolvedores criem softwares acess\u00edveis para idiomas como \u00e1rabe e hebraico. A se\u00e7\u00e3o &#8220;Right-to-Left&#8221; enfatiza que, ao utilizar o renderizador do Skia, as aplica\u00e7\u00f5es passam a suportar naturalmente a renderiza\u00e7\u00e3o de texto RTL, garantindo uma experi\u00eancia de usu\u00e1rio inclusiva e global.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Custom Fonts: Express\u00e3o e identidade visual<\/h3>\n\n\n\n<p>O uso de fontes personalizadas com o Skia4Delphi n\u00e3o \u00e9 apenas uma quest\u00e3o de estilo, mas uma extens\u00e3o da identidade visual da sua aplica\u00e7\u00e3o. Ao permitir a incorpora\u00e7\u00e3o de custom fonts em qualquer controle FMX, em todas as plataformas, o Skia4Delphi garante que voc\u00ea possa manter uma apar\u00eancia consistente e alinhada com a marca de sua aplica\u00e7\u00e3o, independentemente do dispositivo ou sistema operacional. Esta funcionalidade abre portas para uma personaliza\u00e7\u00e3o sem precedentes e uma express\u00e3o visual aut\u00eantica, permitindo que designers e desenvolvedores transmitam o car\u00e1ter \u00fanico de suas aplica\u00e7\u00f5es atrav\u00e9s da tipografia. Al\u00e9m disso, a integra\u00e7\u00e3o de fontes personalizadas \u00e9 simplificada e intuitiva, assegurando que sua aplica\u00e7\u00e3o se destaque com um visual \u00fanico, sem comprometer a usabilidade ou a experi\u00eancia do usu\u00e1rio.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:delphi decode:true \" >program Project1;\nuses\n  System.StartUpCopy,\n  FMX.Forms,\n  FMX.Skia,\n  Unit1 in 'Unit1.pas' {Form1};\n{$R *.res}\nbegin\n  GlobalUseSkia := True;\n  TSkDefaultProviders.RegisterTypeface('Poppins.ttf');\n  Application.Initialize;\n  Application.CreateForm(TForm1, Form1);\n  Application.Run;\nend.<\/pre><\/div>\n\n\n\n<p>No RAD Studio 12 Athens ou mais recente \u00e9 recomendado usar <code>IFMXFontManagerService<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:delphi decode:true \" >program Project1;\nuses\n  System.StartUpCopy,\n  FMX.Forms,\n  FMX.Platform,\n  FMX.FontManager,\n  FMX.Skia,\n  Unit1 in 'Unit1.pas' {Form1};\n{$R *.res}\nbegin\n  GlobalUseSkia := True;\n  var LFontManager: IFMXFontManagerService;\n  if TPlatformServices.Current.SupportsPlatformService(IFMXFontManagerService, LFontManager) then\n    LFontManager.AddCustomFontFromFile('Poppins.ttf');\n  Application.Initialize;\n  Application.CreateForm(TForm1, Form1);\n  Application.Run;\nend.<\/pre><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Controles VCL\/FMX<\/h1>\n\n\n\n<p>Uma das coisas que mais gosto no Skia4Delphi \u00e9 que ele tamb\u00e9m possui controles que facilitam bastante nosso trabalho no dia a dia. N\u00e3o vou me aprofundar muito aqui, pois no github h\u00e1 muita informa\u00e7\u00e3o mais detalhada.<a href=\"https:\/\/github.com\/skia4delphi\/skia4delphi\/?tab=readme-ov-file#controls-vclfmx\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>TSkAnimatedImage<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/skia4delphi\/skia4delphi\/?tab=readme-ov-file#tskanimatedimage\"><\/a><strong>TSkAnimatedImage<\/strong>&nbsp;\u00e9 um controle que pode carregar e renderizar imagens animadas, incluindo vetores animados de forma muito simples. Abaixo uma tabela dos tipos compat\u00edveis e um trecho de c\u00f3digo.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"313\" height=\"236\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-6.png\" alt=\"\" class=\"wp-image-359\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-6.png 313w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-6-300x226.png 300w\" sizes=\"(max-width: 313px) 100vw, 313px\" \/><\/figure><\/div>\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:delphi decode:true \" >  var LAnimatedimage := TSkAnimatedImage.Create(Self);\n  LAnimatedimage.LoadFromFile('Samples\\Demo\\Assets\\rocket.json');\n  LAnimatedimage.Parent := Self;<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"250\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/rocket.webp\" alt=\"\" class=\"wp-image-358\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/rocket.webp 250w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/rocket-150x150.webp 150w\" sizes=\"(max-width: 250px) 100vw, 250px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>TSkLabel<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/skia4delphi\/skia4delphi\/?tab=readme-ov-file#tsklabel\"><\/a><strong>TSkLabel<\/strong>&nbsp;implementa internamente o SkParagraph, permitindo turbinar o TLabel, permitindo uma grande quantidade de personaliza\u00e7\u00f5es ao label:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"735\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-7.png\" alt=\"\" class=\"wp-image-360\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-7.png 849w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-7-300x260.png 300w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-7-768x665.png 768w\" sizes=\"(max-width: 849px) 100vw, 849px\" \/><\/figure><\/div>\n\n\n<p class=\"has-large-font-size\"><strong>TSkSvg<\/strong><\/p>\n\n\n\n<p>O componente TSkSvg permite carregar arquivos SVG, que s\u00e3o muito mais leves e podem inclusive para conter anima\u00e7\u00f5es. <\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:delphi decode:true \" >  var LSvg := TSkSvg.Create(Self);\n  LSvg.Svg.Source := TFile.ReadAllText('Samples\\Demo\\Assets\\panda.svg');\n  LSvg.Parent := Self;<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"247\" height=\"267\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/04\/image-8.png\" alt=\"\" class=\"wp-image-363\"\/><\/figure>\n\n\n\n<p><br>Perfeito, vamos elaborar um texto detalhado sobre a evolu\u00e7\u00e3o da integra\u00e7\u00e3o do Skia4Delphi com o Delphi, destacando a mudan\u00e7a significativa ocorrida na vers\u00e3o 12.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Como instalar o Skia4Delphi?<\/h3>\n\n\n\n<p>O Skia4Delphi representa um marco na evolu\u00e7\u00e3o das capacidades gr\u00e1ficas para desenvolvedores Delphi, oferecendo uma suite de funcionalidades de renderiza\u00e7\u00e3o de alta performance e qualidade visual superior. Desde o seu lan\u00e7amento, esta biblioteca tem sido uma escolha popular entre os desenvolvedores Delphi que buscam elevar o n\u00edvel de suas aplica\u00e7\u00f5es com gr\u00e1ficos avan\u00e7ados e interfaces de usu\u00e1rio atraentes. At\u00e9 a vers\u00e3o 11.3 (Alexandria) do Delphi, a integra\u00e7\u00e3o do Skia4Delphi requerida um processo de instala\u00e7\u00e3o manual, o que, apesar de ser plenamente acess\u00edvel, representava um passo adicional no setup de desenvolvimento.<\/p>\n\n\n\n<p>A instala\u00e7\u00e3o pode ser feita de forma manual baixando o pacote do <a href=\"https:\/\/github.com\/skia4delphi\/skia4delphi\">GitHub <\/a>ou ainda pelo Get It Package Manager diretamente pelo Delphi.<\/p>\n\n\n\n<p>Esta realidade mudou significativamente com o lan\u00e7amento do Delphi 12 Athens. Nesta vers\u00e3o, a Embarcadero reconheceu o valor inestim\u00e1vel que o Skia4Delphi adiciona ao ecossistema Delphi, incorporando a biblioteca diretamente na plataforma. Esta mudan\u00e7a n\u00e3o apenas simplifica o processo de desenvolvimento, eliminando a necessidade de instala\u00e7\u00e3o manual para aqueles que atualizam para a vers\u00e3o mais recente, mas tamb\u00e9m serve como um forte endosso da qualidade e da import\u00e2ncia do Skia4Delphi para a comunidade de desenvolvimento Delphi.<\/p>\n\n\n\n<p>A incorpora\u00e7\u00e3o do Skia4Delphi no Delphi 12 marca um ponto de virada, onde a facilidade de uso e acesso a capacidades gr\u00e1ficas avan\u00e7adas se tornam ainda mais integradas \u00e0 experi\u00eancia de desenvolvimento Delphi. Os desenvolvedores agora t\u00eam, por padr\u00e3o, a capacidade de criar aplica\u00e7\u00f5es visualmente impressionantes e perform\u00e1ticas, com o suporte de uma das mais poderosas bibliotecas gr\u00e1ficas dispon\u00edveis, diretamente de seu ambiente de desenvolvimento integrado (IDE).<\/p>\n\n\n\n<p>Esta evolu\u00e7\u00e3o na integra\u00e7\u00e3o entre o Skia4Delphi e o Delphi refor\u00e7a o compromisso da Embarcadero em fornecer aos desenvolvedores as melhores ferramentas e recursos poss\u00edveis, promovendo uma maior inova\u00e7\u00e3o e qualidade no desenvolvimento de software. Para os usu\u00e1rios do Delphi 12, a transi\u00e7\u00e3o para usar o Skia4Delphi torna-se quase impercept\u00edvel, oferecendo um caminho fluido e otimizado para aproveitar os benef\u00edcios dessa poderosa biblioteca gr\u00e1fica em seus projetos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclus\u00e3o<\/h3>\n\n\n\n<p>A integra\u00e7\u00e3o do Skia4Delphi no Delphi simboliza um marco para o desenvolvimento Delphi, oferecendo aos desenvolvedores acesso direto a uma das mais poderosas bibliotecas gr\u00e1ficas. Com funcionalidades que v\u00e3o desde a renderiza\u00e7\u00e3o acelerada por GPU at\u00e9 o suporte para textos e fontes personalizadas, o Skia4Delphi amplia as fronteiras do design e desempenho de aplica\u00e7\u00f5es. A incorpora\u00e7\u00e3o do Skia4Delphi como uma funcionalidade no Delphi 12 n\u00e3o s\u00f3 facilita o trabalho dos desenvolvedores, mas tamb\u00e9m abre novas possibilidades para criar aplica\u00e7\u00f5es visualmente impressionantes e altamente perform\u00e1ticas. Esse avan\u00e7o assegura que o Delphi permane\u00e7a na vanguarda do desenvolvimento de software, com recursos que respondem \u00e0s exig\u00eancias de um mercado em constante evolu\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Comunidade no <a href=\"https:\/\/t.me\/AdrianoSantosCommunity\">Telegram<\/a><\/p>\n\n\n\n<p>\ud83d\ude80Comente no campo abaixo \ud83d\udc47\ud83d\udc47\ud83d\udc47 o que achou e qual sua d\u00favida.<\/p>\n\n\n\n<p>Te vejo na pr\u00f3xima<\/p>\n\n\n\n<p>Adriano Santos<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No mundo do desenvolvimento de software, a apresenta\u00e7\u00e3o visual n\u00e3o \u00e9 apenas um complemento; \u00e9 uma parte essencial da experi\u00eancia do usu\u00e1rio. Aqui entra o Skia, uma biblioteca gr\u00e1fica renomada que alimenta alguns dos sistemas e aplica\u00e7\u00f5es mais populares do mundo, como Google Chrome e Android. Para desenvolvedores Delphi, o desafio sempre foi como aproveitar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":367,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,52],"tags":[42,51,48,44,49,47,45,50,43,46,15,16],"class_list":["post-348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-skia4delphi","tag-delphi-2","tag-delphi12","tag-desenvolvimentodelphi","tag-desenvolvimentodesoftware","tag-graficos2d","tag-inovacao","tag-programacao-2","tag-renderizacaogpu","tag-skia4delphi","tag-tecnologia","tag-android","tag-ios"],"_links":{"self":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/comments?post=348"}],"version-history":[{"count":12,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/348\/revisions"}],"predecessor-version":[{"id":498,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/348\/revisions\/498"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media\/367"}],"wp:attachment":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media?parent=348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/categories?post=348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/tags?post=348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}