簡體   English   中英

使用Imageresizer Watermark插件編寫文本:居中,寬度和換行

[英]Using Imageresizer Watermark plugin to write text: Centered, width and line feeds

我正在嘗試使用水印插件在項目的圖像上寫文本。 現在,我試圖找出如何為書寫框設置“寬度”,以便獲得自動換行的方法。 有辦法用水印插件做到這一點嗎?

另外,我正在嘗試查看在編寫文本時是否可以獲得“文本對齊:居中”效果(可能與設置的寬度有關),如何獲得該設置?

我認為替代方法是使用代碼驅動的行返回和居中,但這意味着我必須計算字符的寬度,這似乎是一個痛苦的世界

這是一個代碼示例,顯示了我在做什么(當前有效):

var c = Config.Current; 
var wp = c.Plugins.Get<WatermarkPlugin>();

var t = new TextLayer(); 
t.Text = panty.Message; 
t.TextColor = (System.Drawing.Color) color; 
t.Font = fonts[myFunObject.Font]; 
t.FontSize = fontSize[myFunObject.LogoPosition];

t.Left = new DistanceUnit(5, DistanceUnit.Units.Pixels); 
t.Top = new DistanceUnit(5, DistanceUnit.Units.Pixels);

wp.NamedWatermarks["myFunObjectMessage"] = new Layer[] { t };

編輯:我也不得不提到我正在編寫的文本是用戶提交的,因此每次都是不同的。 如果您想要類似的情況,請考慮在其上帶有有趣文字說明的逗貓圖像。 這個項目與此非常相似。 (減去貓)

謝謝您的幫助!

基本上,System.Drawing(以及當前版本的Watermark)對於換行非常原始。

正如您提到的,您可以使用字符計數和帶有循環的單獨MeasureString調用來處理一些駭人聽聞的事情,但是結果幾乎是不可接受的。

您可以嘗試為您的用例添加Watermark源代碼和hack支持。 在沒有先替換基礎圖形引擎的情況下,我看不到一種以通用方式改進水印的方法(這可能會發生)。

System.Drawing具有無與倫比的圖像重采樣質量。 但是,文本換行有點讓人討厭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM