Death Socket consists of three projects. They are a .Net Standard 2.0 library, a console program and a Test Centre. The purpose of this repository is to provide a way for people to add grids to images. https://www.craigoates.net/Software/project/13
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.2 KiB

// These paths need adjusting to match your computer.
#r @"C:/Users/craig/.nuget/packages/skiasharp/1.60.3/lib/netstandard1.3/SkiaSharp.dll"
// Currently not working...
//#r @"C:/Users/craig/.nuget/packages/skiasharp/1.60.3/runtimes/win-x64/native/libSkiaSharp.dll"
#load "Domain.fs"
#load "ValidationServices.fs"
#load "ColourServices.fs"
#load "ImagePrep.fs"
#load "ImageServices.fs"
#load "GridPainter.fs"
open System
open System.Drawing
open SkiaSharp
open ValidationServices
open ImagePrep
open ImageServices
open DeathSocket
(* Death Socket Scripts
===============================================================================
The code in here can be use to create a gridded image without running the CLI.
You can, also, run checks to see what Death Socket is doing when creating
a new image. *)
let desktop = Environment.GetFolderPath (Environment.SpecialFolder.Desktop)
(* 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 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.*)
let dimensions =
//SkiaSharp (desktop + "/test.jpg")
SystemDrawing (desktop + "/test.jpg")
|> GridPainter.determineImageDimensions
// Change the line thickness (the last parameter) to whatever you want.
let scaledPen = GridPainter.scaleLineThickness (100, 100) dimensions 8.0
// 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
// 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.Start