Sto usando gdiplus per "tracciare" un textout. In alcune circostanze, vediamo un "picco" che appare nella parte superiore o inferiore del grafico, e non sono davvero sicuro del perché. Possiamo minimizzare questo aggiustando la larghezza del tratto e la dimensione del carattere, ma questa non è una buona soluzione. Spero che qualcuno possa spiegarmi il problema.FileModeWinding e DrawPath causano picchi dispari
E il codice di esempio generare questo 4, il suo contorno, e il picco (involontario)
GraphicsPath path(FillModeWinding);
path.AddString(text,wcslen(text),&fontFamily,StateInfo.TheFont.TheWeight,(REAL)minSize,PointF((REAL)ptStart.x, (REAL)ptStart.y),&sf);
// Draw the outline first
if (StateInfo.StrokeWidth > 0) {
Gdiplus::Color strokecolor(GetRValue(StateInfo.StrokeColor), GetGValue(StateInfo.StrokeColor), GetBValue(StateInfo.StrokeColor));
Pen pen(strokecolor,(REAL)StateInfo.StrokeWidth);
graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHighQuality);
graphics.DrawPath(&pen, &path);
}
// Draw the text by filling the path
graphics.FillPath(&solidBrush, &path);
Sono convinto che lo Spike in cima al 4 sia dovuto alla regione di forma simile all'interno dei quattro. La documentazione sulla modellatura a macchina sembra indicare questo. Ho anche provato FillModeAlternate, senza modifiche. Non sono sicuro di come recuperare da questo problema. Eventuali suggerimenti? – reuscam
Dubito che la modalità di riempimento sia il problema. Hai provato a eseguirlo su una macchina con un driver video diverso? –
Sì, ho, stessi problemi. Il carattere sopra riportato è Impatto. Problema non si verifica con Arial con le stesse dimensioni del carattere, larghezza del tratto. – reuscam