|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
#r @"C:\Users\craig\.nuget\packages\skiasharp\1.60.3\lib\netstandard1.3\SkiaSharp.dll" |
|
|
|
|
#r @"C:\Users\craig\.nuget\packages\skiasharp\1.60.3\lib\net45\SkiaSharp.dll" |
|
|
|
|
#r @"C:/Users/craig/.nuget/packages/skiasharp/1.60.3/lib/netstandard1.3/SkiaSharp.dll" |
|
|
|
|
#r @"C:/Users/craig/.nuget/packages/skiasharp/1.60.3/lib/net45/SkiaSharp.dll" |
|
|
|
|
#r @"C:/Users/craig/.nuget/packages/skiasharp/1.60.3/lib/Xamarin.Mac20/SkiaSharp.dll" |
|
|
|
|
|
|
|
|
|
#load "Domain.fs" |
|
|
|
|
#load "Validation.fs" |
|
|
|
@ -12,6 +13,8 @@ open System
|
|
|
|
|
open DeathSocket |
|
|
|
|
open Validation |
|
|
|
|
open ImageServices |
|
|
|
|
open SkiaSharp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(* Death Socket Scripts |
|
|
|
|
=============================================================================== |
|
|
|
@ -21,36 +24,63 @@ a nerw image. *)
|
|
|
|
|
|
|
|
|
|
let desktop = Environment.GetFolderPath (Environment.SpecialFolder.Desktop) |
|
|
|
|
|
|
|
|
|
(* You will need to provide the image at the location specified. It will throw |
|
|
|
|
an exception if the file cannnot be found.*) |
|
|
|
|
let validationTest = validateFilePath (desktop + "/test.jpg") |
|
|
|
|
(* You will need to provide the image at the location specified. Both throw an |
|
|
|
|
exception if the file cannot be found or is the wrong extension. Death Socket |
|
|
|
|
only works with JPG and PNG.*) |
|
|
|
|
let IOTest = validateFilePath (desktop + "/test.jpg") |
|
|
|
|
let extentionTest = validateSaveFileType (desktop + "/test.jpg") |
|
|
|
|
|
|
|
|
|
(* These are not needed to create an image. There here for you to check the |
|
|
|
|
start and end points of each pen stroke/path. *) |
|
|
|
|
(* These are not needed by you to create an image. They here for you to check |
|
|
|
|
the start and end points of each pen stroke/path. *) |
|
|
|
|
let horizontalLines = createHorizontalLines 1000 500 10 |
|
|
|
|
let verticalLines = createVerticalLines 300 600 10 |
|
|
|
|
let skHorizontalLines = createSKHorizontalLines 550 520 10 |
|
|
|
|
let skVerticalLines = createSKVerticalLines 120 450 22 |
|
|
|
|
|
|
|
|
|
(* You will need to provide the image and specify its load/save location. |
|
|
|
|
Death Socket assumes either JPEG or PNG files so use other files at your own |
|
|
|
|
risk. Cannot guarantee they will work. Also, either in this spec. can be |
|
|
|
|
changed to suit your needs. *) |
|
|
|
|
let spec: BrushSpec = |
|
|
|
|
{ originalPath = desktop + "/test.jpg" |
|
|
|
|
savePath = desktop + "/grid.png" |
|
|
|
|
colour = Brushes.Chartreuse |
|
|
|
|
penWidth = (float32 1) |
|
|
|
|
rows = 10 |
|
|
|
|
columns = 10 } |
|
|
|
|
|
|
|
|
|
// Run this when you have finished building the spec. |
|
|
|
|
GridPainter.applyBrushSpecGridAsync spec |> Async.RunSynchronously |
|
|
|
|
|
|
|
|
|
//***************************************************************************** |
|
|
|
|
|
|
|
|
|
(* Skia Sharp Draft |
|
|
|
|
=============================================================================== |
|
|
|
|
The code below here will eventually be worked into the main codebase or thrown |
|
|
|
|
away. It is here acting as a first draft for integrating the Skia Sharp NuGet |
|
|
|
|
package into Death Socket. *) |
|
|
|
|
Death Socket assumes either JPEG or PNG files.*) |
|
|
|
|
|
|
|
|
|
// Brush Specification (uses System.Drawing) |
|
|
|
|
Brush ({ originalPath = desktop + "/test.jpg" |
|
|
|
|
savePath = desktop + "/grid.png" |
|
|
|
|
colour = Brushes.Chartreuse |
|
|
|
|
penWidth = (float32 1) |
|
|
|
|
rows = 10 |
|
|
|
|
columns = 10 }) |
|
|
|
|
|> GridPainter.applyGridToImageAsync |
|
|
|
|
|> Async.Start |
|
|
|
|
|
|
|
|
|
// RGBA Specification (uses System.Drawing) |
|
|
|
|
RGBA ({ originalPath = desktop + "/test.jpg" |
|
|
|
|
savePath = desktop + "/grid.png" |
|
|
|
|
alpha = float 1 |
|
|
|
|
red = float 122 |
|
|
|
|
green = float 222 |
|
|
|
|
blue = float 100 |
|
|
|
|
penWidth = (float32 1) |
|
|
|
|
rows = 10 |
|
|
|
|
columns = 10 }) |
|
|
|
|
|> GridPainter.applyGridToImageAsync |
|
|
|
|
|> Async.Start |
|
|
|
|
|
|
|
|
|
// Skia Specification (uses SkiaSharp -- use with Xamarin) |
|
|
|
|
Skia ({ originalPath = desktop + "/test.jpg" |
|
|
|
|
savePath = desktop + "/grid.png" |
|
|
|
|
skColour = SKColors.BlueViolet |
|
|
|
|
penWidth = (float32 1) |
|
|
|
|
rows = 10 |
|
|
|
|
columns = 10}) |
|
|
|
|
|> GridPainter.applyGridToImageAsync |
|
|
|
|
|> Async.Start |
|
|
|
|
|
|
|
|
|
drawSkiaGrid() |
|
|
|
|
// SkiaRGB Specification (uses SkiaSharp -- use with Xamarin) |
|
|
|
|
SkiaRGB ({ originalPath = desktop + "/test.jpg" |
|
|
|
|
savePath = desktop + "/grid.png" |
|
|
|
|
red = (float32 102) |
|
|
|
|
green = (float32 124) |
|
|
|
|
blue = (float32 224) |
|
|
|
|
penWidth = (float32 1) |
|
|
|
|
rows = 10 |
|
|
|
|
columns = 10}) |
|
|
|
|
|> GridPainter.applyGridToImageAsync |
|
|
|
|
|> Async.RunSynchronously |