using System.Threading.Tasks;
using Util.Helpers;
using Xunit;
using Xunit.Abstractions;
namespace Util.Images.Tests;
///
/// 测试图片操作 - 写文本
///
public class DrawTextTest {
///
/// 测试输出
///
private readonly ITestOutputHelper _testOutputHelper;
///
/// 图片服务
///
private readonly IImageManager _imageManager;
///
/// 输出路径
///
private const string Path = "./test/{0}.gif";
///
/// 测试初始化
///
public DrawTextTest( ITestOutputHelper testOutputHelper, IImageManager imageManager ) {
_testOutputHelper = testOutputHelper;
_imageManager = imageManager;
}
///
/// 测试 - 内置字体,指定坐标
///
[Fact]
public async Task Test_1() {
await _imageManager.CreateImage( 128, 128, "5d005d" )
.DefaultFontName( "Microsoft YaHei" )
.Font( 48 )
.Text( "U", "fff", 50, 38 )
.SaveAsync( string.Format( Path, "Test_1" ) );
}
///
/// 测试 - 加载字体,居中显示
///
[Fact]
public async Task Test_2() {
ImageManager.LoadFont( "a", Common.GetPhysicalPath( "~/Fonts/STZHONGS.TTF" ) );
await _imageManager.CreateImage( 128, 128, "5d005d" )
.Font( 48,"a" )
.TextCenter( "U", "fff" )
.SaveAsync( string.Format( Path, "Test_2" ) );
}
///
/// 测试获取流
///
[Fact]
public async Task TestToStreamAsync() {
var result = await _imageManager.CreateImage( 128, 128, "5d005d" )
.ImageType( ImageType.Gif )
.Font( 48 )
.TextCenter( "U", "fff" )
.ToStreamAsync();
await Util.Helpers.File.WriteAsync( string.Format( Path, "TestToStreamAsync" ),result );
}
///
/// 测试获取base64
///
[Fact]
public void TestToBase64() {
var result = _imageManager.CreateImage( 128, 128, "5d005d" )
.ImageType( ImageType.Gif )
.Font( 48 )
.TextCenter( "U", "fff" )
.ToBase64();
_testOutputHelper.WriteLine( result );
}
///
/// 测试受支持的字体列表
///
[Fact]
public void TestGetSupportedFonts() {
ImageManager.LoadFont( "a", Common.GetPhysicalPath( "~/Fonts/STZHONGS.TTF" ) );
var result = ImageManager.GetSupportedFonts();
_testOutputHelper.WriteLine( result.Join() );
}
}