- Регистрация
- 11.12.2016
- Сообщения
- 100
- Благодарностей
- 53
- Баллы
- 28
Хочу рисовать с помощью SkiaSharp в c# кубике, в визуал студио все работает, а тут ругается на зависимости каки то. Я так понял помимо SkiaSharp еще какие то правильные dllшки надо прикрутить ? Ребят, кто сможет помогите.
Сам код:
Может у кого получится запустить, скиньте в архив dll и тд, пожалуйста. Эта библиотека очень круто пишет текст на картинках, ну просто вау, а вот сустем дравинг всегда жирно рисует, ну оно и понятно кистями малюет, а тут на канвасе.
Сам код:
C#:
// Создаем новый белый Bitmap объект размером 600x800 пикселей
using (var surface = SKSurface.Create(new SKImageInfo(600, 800)))
{
// Получаем объект Canvas для рисования
var canvas = surface.Canvas;
// Задаем цвет фона
canvas.Clear(SKColors.White);
string fontPath = "d:/InterTight-Thin.ttf";
var typeface = SKTypeface.FromFile(fontPath);
// Задаем цвет и шрифт для текста
var paint = new SKPaint
{
Color = SKColors.Black,
TextSize = 18,
Typeface = typeface
};
// Определяем текст, который будем рисовать
string text = "Тест текста";
// Определяем ширину изображения
int width = 550;
// Определяем высоту строки
int lineHeight = 20;
// Определяем текущую позицию рисования
int x = 10;
int y = 30;
// Разбиваем текст на слова
string[] words = text.Split(' ');
// Перебираем слова
foreach (string word in words)
{
// Измеряем ширину слова
float wordWidth = paint.MeasureText(word);
// Если ширина слова превышает ширину изображения, то переносим его на новую строку
if (x + wordWidth > width)
{
x = 10;
y += lineHeight;
}
// Рисуем слово на текущей позиции
canvas.DrawText(word, x, y, paint);
// Увеличиваем текущую позицию на ширину слова и пробел
x += (int)wordWidth + (int)paint.MeasureText(" ");
}
// Сохраняем изображение в файле d:/1.png
using (var image1 = surface.Snapshot())
{
using (var stream = new FileStream("d:/1.png", FileMode.Create))
{
var data = image1.Encode(SKEncodedImageFormat.Png, 100);
stream.Write(data.ToArray(), 0, (int)data.Size);
}
}
}