[英]Skiasharp scale bitmap before drawing
我有个问题。 我正在使用 TextToBitmap 函数,因此我可以修改位图。 但是当我将它缩放到更大的位图时,文本的分辨率会变差。 为了解决这个问题,我将 TextSize 设置为 400,因此文本以高分辨率绘制得非常大,这为我提供了高分辨率位图。 问题是绘制位图时,它仍然很大,所以我想将位图缩放到特定的高度。
现在我知道如何做到这一点,我需要这样做:
bitmapCollection.Add(bitmapCollection.Count, new TouchManipulationBitmap(TextBitmap)
{
Matrix = SKMatrix.MakeTranslation(position.X, position.Y),
Matrix = SKMatrix.MakeScale((float)0.3, (float)0.3),
});
但我不能使用 Matrix 2 次。 翻译和比例是必要的,那么我该如何修改两者呢?
编辑:
我尝试使用这个:
SKMatrix matrix;
bitmapCollection.Add(bitmapCollection.Count, new TouchManipulationBitmap(TextBitmap)
{
Matrix = SKMatrix.Concat(matrix, SKMatrix.MakeTranslation(position.X, position.Y),
SKMatrix.MakeScale((float)0.3, (float)0.3))
});
但这给了我以下错误:
参数 1 必须与 'ref' 关键字一起传递 使用未分配的局部变量 'matrix'
我究竟做错了什么?
使用Concat组合两个矩阵
public static void Concat (ref SkiaSharp.SKMatrix target, ref SkiaSharp.SKMatrix first, ref SkiaSharp.SKMatrix second);
文档中有关于这个主题的冗长讨论。
在您的具体情况下
SKMatrix matrix = new SKMatrix();
// matrix will contain the combined value
SKMatrix.Concat(ref matrix,
SKMatrix.MakeTranslation(position.X, position.Y),
SKMatrix.MakeScale((float)0.3, (float)0.3))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.