2013-03-19 217 views
2

我搜索了幾個小時......但我很茫然!Mathematica:將文本添加到導入的圖像/圖形作爲標籤

我已經導入了一個圖像INT Mathematica - >尺寸2x2cm在72DPI。

我想「標籤」與文本字符串,圖像: - 具有字體顏色「FONTCOLOR」 - 有一個黑色的輪廓,因此,對比其他任何基礎顏色 - 坐落在右下角導入的圖像 - 有尺寸H/W釐米 - 任選一個文本框與白色背景

這是位於香港專業教育學院多遠:

MathCode:

image = Import["myimg.jpg"]; 
inchFactor = 2.54;(* 1 inch = 2.54cm *) 
docRes = 72; 
pixelConverter = docRes/inchFactor/2; 

myText = First[ 
    First[ImportString[ 
    ExportString[ 
     Style["glorious label string here", Bold, FontSize -> 15, 
     FontFamily -> "Verdana"], "PDF"], "PDF", 
    "TextMode" -> "Outlines"]]]; 

myTextGraphic = 
    Graphics[{EdgeForm[Directive[Black, Thickness[0.01]]], White, 
    myText}, Background -> White, 
    ImageSize -> {10*pixelConverter, 2*pixelConverter}]; 
myTextGraphic = Rasterize[myTextGraphic]; 

combined = SetAlphaChannel[myTextGraphic, myTextGraphicAlphaVersion]; 

我發現上述方法(PDF包裝)的文字字符串的黑色輪廓。

我正在使用僅使用黑色/白色的文本字符串的圖形添加AlphaChannel。

然後我嘗試將圖像與疊加結合。

由於這似乎沒有任何關於輸出圖像的大小和位置的工作,我請求幫助。 沒有必要「修復」那些混亂的代碼。

也許你可以指給我一個腳本或教程 - 我真正想要的是添加和定位文本字符串或文本框到底層圖像。

非常感謝!

+0

你想讓我把這個問題轉移到我們的Mathematica專家網站上嗎?你可能會得到更好的幫助。 @ ping我或標誌爲主持人做到這一點。謝謝。 – Kev 2013-03-20 17:01:09

回答

1

現在已經晚了這裏,所以這只是你的解決方案的開端,但這裏有一個簡單的方法,一個文本標籤添加到圖像:

lbl = Graphics[Text[Style["Bottom", Red, Large]]] 

與文本創建圖像「底」在紅色的大字體。接下來,給定一個圖像img1

ImageCompose[img1,lbl] 

將文本放在圖像的中心。 ImageCompose有一些選項可以讓您將第二張圖像(即標籤)放在第一張圖像上。您可以將此標籤貼在彩色背景上,如下所示:

lbl = Graphics[Text[Style["Bottom", Red, Large, Background -> Blue]]] 

我還沒有想出如何用彩色輪廓書寫文字。

+0

謝謝你的親切幫助!你的回答也告訴我,我必須仔細看看函數層次結構;)Thx! – stockoverflaw 2013-03-23 16:43:28

1

看看這個。還有其他的方法。

img = Import["http://todayinsci.com/H/Hilbert_David/HilbertDavidThm.jpg"]; 

Column[{ 
    img, 
    Text[Style["Professor Hilbert", Red]] 
}] 

imgCtr = Round[ImageDimensions[img]/2]; 

overlay = Framed[Graphics[{Text[Style["Professor Hilbert", Red, 9], imgCtr]},ImageSize-> {66, 14}], FrameStyle -> Green] 

Overlay[{img, overlay}, Alignment -> Center] 
+0

非常感謝!非常感激 ! – stockoverflaw 2013-03-23 16:42:34