我已经搜索了好几个小时......但我不知所措!
我在Mathematica中导入了一个图像 - >尺寸为2x2cm,72DPI。
我试图用文本字符串“标记”图像: - 有字体颜色“fontColor” - 具有黑色轮廓,因此它与任何底层颜色形成对比 - 位于导入图像的右下角 - 尺寸为h / w(cm) - 可选择位于带有白色背景的文本框中
这是我的到来:
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 :(得分:1)
现在已经很晚了,所以这只是解决方案的开始,但这是一种向图像添加文本标签的简单方法:
lbl = Graphics[Text[Style["Bottom", Red, Large]]]
以大字体红色创建文本“Bottom”的图像。接下来,给出一个名为img1
ImageCompose[img1,lbl]
将文本放在图像的中心。 ImageCompose
具有允许您将第二个图像(即标签)定位在第一个图像上的选项。您可以将标签放在彩色背景上,如下所示:
lbl = Graphics[Text[Style["Bottom", Red, Large, Background -> Blue]]]
我还没想到,如何用彩色轮廓书写文字。
答案 1 :(得分: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]