首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于向图像管理器添加图像的企业架构师API

用于向图像管理器添加图像的企业架构师API
EN

Stack Overflow用户
提问于 2018-06-18 07:23:01
回答 1查看 357关注 0票数 1

我正在编写企业架构师C#插件中的表单。我需要通过自动化将图像添加到映像管理器,因为通过在元素/包注释中设置到它们的超链接,我可以使用EA Repository.ExtractImagesFromNote ()将图像导出到外部路径。

在普通工具箱中,有一个图像元素。在拖放时,它会自动打开图像管理器,为其设置备用图像。我还注意到,这个图像没有显示在项目浏览器中(是因为它是一个非UML元素吗?)

我尝试通过自动化添加此图像元素,如下所示:

代码语言:javascript
运行
复制
EA.Element testImg = viewPkg.Elements.AddNew(imagePath, "Image")

创建的元素如下所示:

它创建了一个图像资产(来自工件工具箱),而不是图像元素(来自公共工具箱)。

我需要图像被添加到图像管理器。我请求帮助从公共工具箱创建图像元素,并通过代码(而不是图像资产)将图像设置为图像。

我还在中注意到这个选项:

更新t_image表的当前代码:

代码语言:javascript
运行
复制
string base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(@"C:\\Users\\Desktop\\Figure 1.1.bmp"));
Session.Repository.Execute("INSERT INTO t_image VALUES('0000000002','test200','Bitmap','"+base64+ "')");

我更新了下面的代码,以便将.png中的图像转换为base64编码的字符串

代码语言:javascript
运行
复制
var imageStream = new MemoryStream();
Bitmap resized = new Bitmap(img, new Size(img.Width / 5,  img.Height / 5));
resized.Save(imageStream, ImageFormat.Png);
imageStream.Position = 0;
var imageBytes = imageStream.ToArray();
ImageBase64 = Convert.ToBase64String(imageBytes, 0, imageBytes.Length);

我使用t_image命令将这个值插入到repository.execute表中:

代码语言:javascript
运行
复制
 Session.Repository.Execute("INSERT INTO t_image VALUES(" + imgCount + ",'" + imgPath+".bmp" + "','Bitmap','"+ImageBase64+"')");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-18 07:52:44

这实际上是创建一个<<image>> Artifact (或者您可以使用一个Boundary)并为它分配一个备用图像。图像需要放置在EA的图像库中。您可以在this SO answer中阅读如何实现这一目标。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50904445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档