Skip to content

Instantly share code, notes, and snippets.

View viniciusfbb's full-sized avatar

Vinícius Felipe Botelho Barbosa viniciusfbb

View GitHub Profile
@viniciusfbb
viniciusfbb / ResizeImage.pas
Last active June 21, 2024 11:49
Resizing image using Skia4Delphi
function GetResizedImage(const AImage: ISkImage; ATargetWidth, ATargetHeight: Integer;
ASamplingOptions: TSkSamplingOptions; AProgressive: Boolean = True): ISkImage;
function MakeResized(const AImage: ISkImage; ANewWidth, ANewHeight: Integer): ISkImage;
var
LSurface: ISkSurface;
begin
LSurface := TSkSurface.MakeRaster(ANewWidth, ANewHeight);
LSurface.Canvas.Clear(0);
LSurface.Canvas.Scale(ANewWidth / AImage.Width, ANewHeight / AImage.Height);
@viniciusfbb
viniciusfbb / fmx.svg
Created May 19, 2023 02:56
Firemonkey Artwork #delphi
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@viniciusfbb
viniciusfbb / Skia.TextShadow.pas
Created January 22, 2023 14:07
Text shadow example using the Skia4Delphi library
uses
Skia, Skia.FMX.Graphics;
procedure TForm1.SkPaintBox1Draw(ASender: TObject; const ACanvas: ISkCanvas;
const ADest: TRectF; const AOpacity: Single);
var
LTextLayout: TSkTextLayout;
LPaint: ISkPaint;
begin
LTextLayout := TSkTextLayout.Create;
@viniciusfbb
viniciusfbb / KeyName.pas
Created November 28, 2022 15:04
Delphi FMX key name, used in OnKeyDown/OnKeyUp
function KeyName(const AKey: Word): string;
begin
case AKey of
1: Result := 'vkLButton';
2: Result := 'vkRButton';
3: Result := 'vkCancel';
4: Result := 'vkMButton';
5: Result := 'vkXButton1';
6: Result := 'vkXButton2';
8: Result := 'vkBack';
@viniciusfbb
viniciusfbb / SimpleResize.pas
Created November 7, 2022 17:41
Simple example resizing an image using Skia4Delphi
uses
System.UITypes, Skia;
function GetResizedImage(const AImage: ISkImage; const ANewWidth, ANewHeight: Integer): ISkImage;
var
LSurface: ISkSurface;
begin
LSurface := TSkSurface.MakeRaster(ANewWidth, ANewHeight);
LSurface.Canvas.Clear(TAlphaColors.Null);
LSurface.Canvas.Scale(ANewWidth / AImage.Width, ANewHeight / AImage.Height);
@viniciusfbb
viniciusfbb / Skia.FitAndCrop.pas
Last active August 18, 2023 06:55
Fit and crop a image using Skia4Delphi
unit Skia.FitAndCrop;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Math,
System.Math.Vectors, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics,
FMX.Objects, Skia, Skia.FMX;
type
@viniciusfbb
viniciusfbb / LogTail4Delphi.pas
Last active July 6, 2022 15:07
LogTail integration for Delphi
uses
iPub.Rtl.Refit; // https://github.com/viniciusfbb/ipub-refit
type
TLogMessageLevel = (Info, Warning, Error);
TLogMessage = record
Dt: TDateTime;
Level: TLogMessageLevel;
&Message: string;
@viniciusfbb
viniciusfbb / StrokePathGradient.pas
Last active June 13, 2022 03:11
[Skia4Delphi] Paint gradient color following a stroke path
unit StrokePathGradient;
interface
uses
System.UITypes, Skia;
procedure DrawPathEndSmothing(const ACanvas: ISkCanvas; const APath: ISkPath;
const APaint: ISkPaint; const AInnerColor, AOuterColor: TAlphaColor;
AStart, AStop: Single; const AInterpolations: Integer);
@jimmckeeth
jimmckeeth / manualadb.bat
Last active May 3, 2024 23:58
Manual ADB Deployment from RAD Studio Tools Menu
@echo off
REM Call from Delphi/RAD Studio IDE with the following parameters
REM $PATH($EXENAME) $NAMEONLY($PROJECT)
echo =============================================================
echo Be sure you Compile Android 64 and Deploy [Shift-Ctrl-Alt-F9]
echo.
echo Also set <application android:resizeableActivity="true"> in AndroidManifest.template.xml
echo =============================================================
echo Path: %1
set apk=%2\bin\%2.apk
@viniciusfbb
viniciusfbb / DeviceModel.iOS.pas
Last active January 21, 2024 20:03
Get the device model name in iOS in Delphi (Firemonkey) applications
unit DeviceModel.iOS;
interface
function GetDeviceModelName: string;
function GetDeviceModelPrettyName: string;
implementation
uses