ImageTagHelper in .NET Core–add data URI scheme
The ImageTagHelper in ASP.NET Core MVC (https://github.com/aspnet/Mvc) is lacking one attribute that I find somehow useful: a data uri to embed the image as base64 (https://en.wikipedia.org/wiki/Data_URI_scheme )
I was curious about how fast it will be to make such a modification on my PC.
So the process was:
- Downloading branch rel/1.1.1 from https://github.com/aspnet/Mvc as a zip file
- Unlock the file, unpack, run MVC.sln with VS2015
- Compile the entire project.
- See tests ( also run dotnet test in the Mvc-rel-1.1.1\test\Microsoft.AspNetCore.Mvc.TagHelpers.Test to figure what was missing)
- Started modifying the file ImageTagHelper( adding
public bool RenderBase64
and creating FileBase64ContentProvider.cs with the (approximately) same content as FileVersionProvider
- Adding tests to mvc-rel-1.1.1\test\microsoft.aspnetcore.mvc.taghelpers.test\imagetaghelpertest.cs ( also modifying mocker –
for my purposes, to read the file, I need file lengthmockFile .Setup(m => m.CreateReadStream()) .Returns(() => new MemoryStream(Encoding.UTF8.GetBytes("Hello World!"))); mockFile.SetupGet(f => f.Length).Returns(12);
- Modifying HtmlTargetElement attribute from ImageTagHelper
- Adding “Microsoft.AspNetCore.StaticFiles”: “1.1.0”, and app.UseStaticFiles(); to HtmlGenerationWebSite and going to http://localhost:5551/HtmlGeneration_Home/image
And that was all. Now I will see how to fork and submit changes 😉
Later Edit: Submit a bug, fork, pull request. Approved.
https://github.com/aspnet/Mvc/issues/5694
Leave a Reply