Comments 30
UFO just landed and posted this here
Ссылка на pastebin или аналогичный сервис? Можно даже через API подвязать чтобы автогенерировалось.
0
А было бы не плохо, если бы пастебин мог давать код, как например ютуб дает, чтобы втроить на свой сайт.
Например <script type=«text/javascript» src=«pastebin.com/code.js?id=xxx»></sript>
Например <script type=«text/javascript» src=«pastebin.com/code.js?id=xxx»></sript>
0
UFO just landed and posted this here
У вас на третьем code snippet`e подсветка после символьного литерала поехала в отпуск.
+3
UFO just landed and posted this here
1) Опечатка в ссылке
2) Странная формулировка заголовка. Я не понял, о чём статья, пока не дочитал до второго абзаца :(
2) Странная формулировка заголовка. Я не понял, о чём статья, пока не дочитал до второго абзаца :(
0
UFO just landed and posted this here
А если читатель захочет увеличить масштаб страницы, то пускай смотрит на размытые шрифты, сам виноват, да?
+2
А почему бы не использовать RenderTargetBitmap, для растеризации контролов WPF? Для большей гибкости можно работать с объектами DrawingVisual и отрисовывать текст через DrawingContext.DrawText().
+1
Я этим раньше баловался, но качество отрисовки текста у WPF просто убого было. Как сейчас – не знаю, да и не волнует особо – доверие уже потеряно. Вот, нашел кусочек кода который делал заголовки через WPF – их приходилось потом постпроцессировать чтобы они нормально выглядели
internal static Bitmap CreateHeading(string text, ConversionOptions options)
{
if (string.IsNullOrEmpty(text))
text = "Test string";
Run run2 = new Run
{
FontFamily = new FontFamily(options.ImageHeadingFontFamily),
FontSize = options.ImageHeadingFontSizePrimary,
FontStyle = FontStyles.Normal,
Text = text,
Foreground = new SolidColorBrush(options.ImageHeadingForegroundColor),
};
if (options.ImageHeadingItalic) run2.FontStyle = FontStyles.Italic;
Run item = run2;
Paragraph paragraph2 = new Paragraph {TextAlignment = TextAlignment.Left};
Paragraph paragraph = paragraph2;
paragraph.Inlines.Add(item);
var document = new FlowDocument();
document.Blocks.Add(paragraph);
document.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
document.PageHeight = 100.0;
document.PageWidth = document.ColumnWidth = 2400.0;
DocumentPaginator documentPaginator = ((IDocumentPaginatorSource)document).DocumentPaginator;
documentPaginator.PageSize = new Size(documentPaginator.PageSize.Width * 3.0, 100.0);
var visual = new ContainerVisual {Transform = new ScaleTransform(3.0, 1.0)};
visual.Children.Add(documentPaginator.GetPage(0).Visual);
var source = new RenderTargetBitmap(0x960, 100, 72.0, 72.0, PixelFormats.Pbgra32);
source.Render(visual);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(source));
Bitmap bitmap2;
using (var stream = new MemoryStream())
{
encoder.Save(stream);
bitmap2 = new Bitmap(stream);
}
using (var bitmap3 = FastCoalesce(bitmap2))
using (var bitmap4 = new Bitmap(bitmap3.Width / 3, bitmap3.Height))
{
FastFold(bitmap3, bitmap4);
bitmap2.Dispose();
return Crop(bitmap4);
}
}
+2
у меня тоже первой идеей было предложить WPF, с ним будет проще, да и в WPF 4 уже все пофикшено с текстом. Сэкономило бы много времени такое решение.
А в целом — текст в картинках — бэээ…
А в целом — текст в картинках — бэээ…
0
Вот так выглядит лучше чем у вас в топике :) Ей богу!
+2
В WPF отрисовка текста на экране заметно улучшилась. Но это на экране. Я тут поэкспериментировал и вот, что получилось. Consolas, 12pt.
WPF 3.5, 96dpi:
WPF 4, 96dpi:
WPF 3.5, 72dpi:
WPF 4, 72dpi:
WPF 3.5, 96dpi:
WPF 4, 96dpi:
WPF 3.5, 72dpi:
WPF 4, 72dpi:
0
Эх, первые две местами перепутал. Та, что пожирнее — WPF 4.
0
У WPF 4 есть несколько типов рендеринга текста: WPF 4.0. Что нового? Часть 3..
Вы какой использовали? И там явно можно поиграться с ними ;)
Вы какой использовали? И там явно можно поиграться с ними ;)
0
Спасибо за ссылку. У меня все стояло по умолчанию. Следовательно TextFormatitingMode=Ideal, ClearTypeHint=Auto.
По умолчанию:
TextFormattingMode=Display:
TextFormattingMode=Display, ClearTypeHint=Enabled:
Получается, что можно добиться практически идеального результата.
По умолчанию:
TextFormattingMode=Display:
TextFormattingMode=Display, ClearTypeHint=Enabled:
Получается, что можно добиться практически идеального результата.
0
Все некачественно, увы. Хотя… интересно, как мой растеризатор это делает?
+1
Sign up to leave a comment.
Про растеризацию исходного кода