Craig Oates
6 years ago
3 changed files with 35 additions and 6 deletions
@ -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 |
||||
} |
@ -1,5 +0,0 @@
|
||||
namespace SmoulderingBeachBall |
||||
|
||||
module Say = |
||||
let hello name = |
||||
printfn "Hello %s" name |
Loading…
Reference in new issue