Próbuję oszacować szerokości w pikselach, jeśli tekst będzie renderowany w Chrome, używając C# dla określonej czcionki (Arial 18px) w narzędziu, które utworzę .C#: Szerokość pasującego piksela tekstu renderowanego w przeglądarce
Porównując moje wyniki z tego narzędzia (korzysta z przeglądarki do renderowania szerokość): http://searchwilderness.com/tools/pixel-length/ ciąg:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
oblicza się na 439 pikseli szerokości.
Ale z tego kodu w C# uzyskać 445px:
var font = new Font("Arial", 18, FontStyle.Regular, GraphicsUnit.Pixel);
var text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
var size = TextRenderer.MeasureText(text, font, new Size(int.MaxValue, int.MaxValue), TextFormatFlags.NoPadding);
mogę zmodyfikować mój kod tak czyni podobny do przeglądarki?
Próbowałem wydrukować etykietę z czcionką i tekstem oraz porównać z renderowaniem przeglądarki, które pasują (+/- 1px).
Być może powinieneś mieć więcej szczęścia porównując dwóch różnych dostawców na niższym poziomie. Porównujesz przeglądarkę z językiem programowania, gdy w rzeczywistości ta przeglądarka używa Webkita, który może definiować własny niestandardowy interfejs API do rysowania, podczas gdy interfejs API, którego używasz w języku C#, może używać GDI +, DirectX itd. –
Możesz porównać Graphics.MesaureString () z opcją StringFormat.GenericTypographic. Ale tak naprawdę: 439 vs 445 jest całkiem blisko imo. – TaW
Który z nich jest poprawny, w IE w searchwilderness daje 438 na chrome 435? – Anil