Browse Source

rename Library.fs to ImageMaker.fs.

Port code from previous commits into new NuGet project.
master
Craig Oates 6 years ago
parent
commit
ff999edffb
  1. 34
      SmoulderingBeachBall/ImageMaker.fs
  2. 5
      SmoulderingBeachBall/Library.fs
  3. 2
      SmoulderingBeachBall/SmoulderingBeachBall.fsproj

34
SmoulderingBeachBall/ImageMaker.fs

@ -0,0 +1,34 @@
namespace SmoulderingBeachBall
module ImageMaker =
open System
open System.Drawing
open System.IO
let private validateDimension dimension =
match dimension with
| dimension when dimension <= 0 -> invalidArg "dimension" "The width and height must be greater than 0."
| _ -> ()
let private validateDirectory filePath =
let path = Path.GetDirectoryName filePath
match (Directory.Exists path) with
| false -> invalidArg "filePath" "Unable to save to the specified location because it does not exist."
| true -> ()
let makeImage width height colour filepath =
async {
try
validateDimension width
validateDimension height
validateDirectory filepath
use bitmap = new Bitmap(width, height)
use graphics = Graphics.FromImage(bitmap)
graphics.FillRectangle(colour, new Rectangle(0, 0, bitmap.Width, bitmap.Height))
bitmap.Save(filepath)
return "Image saved."
with
| :? ArgumentException as ex -> return ex.Message
| _ as ex -> return ex.Message
}

5
SmoulderingBeachBall/Library.fs

@ -1,5 +0,0 @@
namespace SmoulderingBeachBall
module Say =
let hello name =
printfn "Hello %s" name

2
SmoulderingBeachBall/SmoulderingBeachBall.fsproj

@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="Library.fs" />
<Compile Include="ImageMaker.fs" />
</ItemGroup>
</Project>

Loading…
Cancel
Save