Używam QPainter::setRenderHint(QPainter::Antialiasing, true)
, aby powiedzieć Qt, że chcę, aby był on antyalisem dla dowolnego rysunku, który robię (w tym przypadku tekst narysowany za pomocą drawText()
).QPainter :: rotate wyłącza wygładzanie narysowanego tekstu
To działa dobrze, a tekst wygląda dobrze, dopóki nie chcę obrócić mapy piksli, którą rysuję do np.
Painter.translate(0, height());
Painter.rotate(-90);
(aby obrócić QPainter 90 stopni w lewo i doprowadzić go z powrotem do widzenia)
Wezwanie do rotate()
wydaje się wyłączyć antyaliasing dla dowolnego tekstu sporządzonego - tekst jest rysowany na odpowiedniej rotacji ale bez antyaliasingu . Inne rzeczy wydają się nietknięte - np. drawLine()
nadal rysuje ładnie wygładzoną linię.
Każdy pomysł, co robię źle?
EDYCJA: Nie jest zaskoczeniem, że dodanie tekstu do ścieżki i wypełnienie tej ścieżki daje mi tekst antyaliasowy, obrócony w rotację. Wolałbym jednak unikać tej trasy, jeśli to możliwe.
EDYCJA (ponownie): Próbowałem użyć QFont::setStyleStrategy(QFont::PreferAntialias)
dla używanej czcionki, bez żadnego efektu. Jednak niektóre eksperymenty pokazują, że podstawowa czcionka, taka jak Arial, po obróceniu będzie generować tekst antyaliasingowy, podczas gdy moja niestandardowa czcionka (Swiss721 BlkCn BT dla każdego, kto jest zainteresowany) nie będzie. Co więcej, podczas gdy ten problem występuje w systemie Windows 7, nie mam tego samego problemu podczas uruchamiania systemu Ubuntu. This FAQ article wydaje się sugerować, że Qt sprawdza system operacyjny dla obsługi antyaliasingu czcionek, więc jakie problemy mogą mieć Windows w obsłudze renderowania tej konkretnej czcionki (która jest TrueType, podobnie jak Arial)?
EDYCJA (ostatni raz, obiecuję): Zwiększenie rozmiaru czcionki do 16 punktów lub więcej zabije problem. Wydaje się, że chodzi o renderowanie mojej konkretnej czcionki poniżej 16pkt - być może ma to coś wspólnego z tym, o czym wspomniano w powyższym artykule na blogu:
W przypadku czcionek Windows 2000 zwykle nie występuje antyaliasing w określonym zakresie (np. rozmiary 8-16), aby tekst był bardziej wyraźny i czytelny.
Myślę, że mógłbym odpowiedzieć na moje własne pytanie tutaj, ale jeśli ktoś ma jakiekolwiek dalsze lub związane informacje, nadal byłbym bardzo zainteresowany. – sjwarner