Skip to content

Commit

Permalink
Update dependencies and assign corporate ownership
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveDesmond-ca committed Sep 9, 2021
1 parent 4347f18 commit 823d30f
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 33 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ Properties
*.user
.vs
*.lock.json
.idea
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2018 Steve Desmond
Copyright (c) 2018 ecoAPM LLC

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
7 changes: 3 additions & 4 deletions src/ImageExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System.Drawing;
using System.IO;
using System.IO;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
Expand All @@ -8,15 +7,15 @@ namespace SrcSet
{
public static class ImageExtensions
{
public static string SaveResizedImage(this Image<Rgba32> image, string filePath, Size newSize)
public static string SaveResizedImage(this Image<Rgba32> image, string filePath, System.Drawing.Size newSize)
{
var dir = Path.GetDirectoryName(filePath);
var newFileName = FileHelpers.GetFilename(filePath, newSize);
var newPath = Path.Combine(dir, newFileName);
if (File.Exists(newPath))
return null;

using (var resized = image.Clone())
using (var resized = image.CloneAs<Rgba32>())
{
resized.Mutate(i => i.Resize(newSize.Width, newSize.Height));
resized.Save(newPath);
Expand Down
6 changes: 3 additions & 3 deletions src/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Threading.Tasks;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

namespace SrcSet
{
Expand Down Expand Up @@ -33,11 +34,10 @@ public static async Task<int> Main(string[] args)
return 1;
}

var manager = new SrcSetManager(Image.Load);
var manager = new SrcSetManager(Image.Load, Console.WriteLine);
var sizes = args.GetSizes();
var resizeTasks = fileOrDirectoryArg.GetFiles(resizeRecursively, resizeDirectory)
.Select(async file => await Task.Run(() => manager.SaveSrcSet(file, sizes)))
.ToArray();
.Select(async file => await manager.SaveSrcSet(file, sizes));
await Task.WhenAll(resizeTasks);
return 0;
}
Expand Down
19 changes: 11 additions & 8 deletions src/SrcSet.csproj
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AssemblyName>srcset</AssemblyName>
<OutputType>Exe</OutputType>
<PackAsTool>true</PackAsTool>
<PackageId>srcset</PackageId>
<LangVersion>7.1</LangVersion>
<Version>2.0.0</Version>
<LangVersion>latest</LangVersion>
<Authors>Steve Desmond</Authors>
<Company>Steve Desmond Software Development</Company>
<Company>ecoAPM LLC</Company>
<Product>dotnet-srcset</Product>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Description>Generate a set of responsive images</Description>
<Copyright>Steve Desmond</Copyright>
<PackageLicenseUrl>https://raw.githubusercontent.com/stevedesmond-ca/dotnet-srcset/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/stevedesmond-ca/dotnet-srcset</PackageProjectUrl>
<RepositoryUrl>https://github.com/stevedesmond-ca/dotnet-srcset</RepositoryUrl>
<Copyright>ecoAPM LLC</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/ecoAPM/dotnet-srcset</PackageProjectUrl>
<RepositoryUrl>https://github.com/ecoAPM/dotnet-srcset</RepositoryUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Version>2.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0005" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.3" />
</ItemGroup>
</Project>
21 changes: 14 additions & 7 deletions src/SrcSetManager.cs
Original file line number Diff line number Diff line change
@@ -1,28 +1,35 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

namespace SrcSet
{
public class SrcSetManager
{
private readonly Func<string, Image<Rgba32>> _loadImage;
private readonly Func<byte[], Image<Rgba32>> _loadImage;
private readonly Action<string> _log;

public SrcSetManager(Func<string, Image<Rgba32>> loadImage) => _loadImage = loadImage;
public SrcSetManager(Func<byte[], Image<Rgba32>> loadImage, Action<string> log)
{
_loadImage = loadImage;
_log = log;
}

public void SaveSrcSet(string filePath, IEnumerable<ushort> widths)
public async Task SaveSrcSet(string filePath, IEnumerable<ushort> widths)
{
using (var image = _loadImage(filePath))
var data = await File.ReadAllBytesAsync(filePath);
using (var image = _loadImage(data))
{
var size = new Size(image.Width, image.Height);
var size = new System.Drawing.Size(image.Width, image.Height);
foreach (var newSize in widths.Select(width => size.Resize(width)))
{
var newFile = image.SaveResizedImage(filePath, newSize);
if(newFile != null)
Console.WriteLine(newFile);
_log(newFile);
}
}
}
Expand Down
5 changes: 2 additions & 3 deletions test/ImageExtensionTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using System.Drawing;
using System.IO;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
Expand All @@ -17,7 +16,7 @@ public void CanSaveResizedImage()
var image = new Image<Rgba32>(1, 1);

//act
var newName = image.SaveResizedImage(path, new Size(2, 2));
var newName = image.SaveResizedImage(path, new System.Drawing.Size(2, 2));

//assert
Assert.Equal("test-0002.png", newName);
Expand All @@ -31,7 +30,7 @@ public void SkipsExistingFiles()
var image = new Image<Rgba32>(1, 1);

//act
var newName = image.SaveResizedImage(path, new Size(1, 1));
var newName = image.SaveResizedImage(path, new System.Drawing.Size(1, 1));

//assert
Assert.Null(newName);
Expand Down
8 changes: 4 additions & 4 deletions test/SrcSet.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\src\SrcSet.csproj" />
Expand Down
7 changes: 4 additions & 3 deletions test/SrcSetManagerTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Threading.Tasks;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using Xunit;
Expand All @@ -9,13 +10,13 @@ namespace SrcSet.Tests
public class SrcSetManagerTests : IDisposable
{
[Fact]
public void CanResizeImage()
public async Task CanResizeImage()
{
//arrange
var manager = new SrcSetManager(s => new Image<Rgba32>(1, 1));
var manager = new SrcSetManager(s => new Image<Rgba32>(1, 1), s => {});

//act
manager.SaveSrcSet("test.png", new ushort[] { 3 });
await manager.SaveSrcSet("test.png", new ushort[] { 3 });

//assert
Assert.True(File.Exists("test-0003.png"));
Expand Down

0 comments on commit 823d30f

Please sign in to comment.