2013-03-19 222 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