我正在通過將圖像分層疊加到另一個上來構建位圖,並且當完成後我想要在邊緣寫入文本。頂部和底部很簡單,因爲它們是水平書寫的,但我更傾向於將文本垂直寫入左側和右側,因此它們不會佔用太多空間。旋轉字符串以在位圖上垂直寫入
Graphics.DrawString方法不允許您指定旋轉角度;還有什麼其他方法?
我正在通過將圖像分層疊加到另一個上來構建位圖,並且當完成後我想要在邊緣寫入文本。頂部和底部很簡單,因爲它們是水平書寫的,但我更傾向於將文本垂直寫入左側和右側,因此它們不會佔用太多空間。旋轉字符串以在位圖上垂直寫入
Graphics.DrawString方法不允許您指定旋轉角度;還有什麼其他方法?
我想你可以從this answer about rotating text for printing,我寫了一段時間前得到一些指點。
這裏是一個教程,可以幫助 http://www.c-sharpcorner.com/Blogs/BlogDetail.aspx?BlogId=580
我相信StringFormatFlags.DirectionVertical是你在找什麼
也許您可以將位圖旋轉90度並將文本寫入位圖頂部 - 然後再次旋轉並寫入下一側的文本 - 這會讓您在邊緣周圍運行CW/CCW文本。
如果你想要水平橫跨頂部和底部並垂直於左側和右側,我建議測量(或assumning)你需要寫的最大字符的大小,然後用它來定位繪製的文本 - 一個字符在一次 - 首先在左邊然後右邊然後移動一個字符並且重複。你當然可以在整體左側,然後在右側。只需使用char的寬度從右側插入,並使用char的高度在字符之間垂直偏移。
例如
1 2 OR 1 4 GIVING C D
3 4 2 5 A O
5 6 3 6 T G
可能不是最優雅的解決方案,但可以幫助你。
爲此,您可以使用logical font。但這是一個痛苦 - 你最好使用Fredrik的答案(除非你在Compact Framework中這樣做,而RotateTransform不可用)。