我正在编写企业架构师C#插件中的表单。我需要通过自动化将图像添加到映像管理器,因为通过在元素/包注释中设置到它们的超链接,我可以使用EA Repository.ExtractImagesFromNote ()将图像导出到外部路径。
在普通工具箱中,有一个图像元素。在拖放时,它会自动打开图像管理器,为其设置备用图像。我还注意到,这个图像没有显示在项目浏览器中(是因为它是一个非UML元素吗?)
我尝试通过自动化添加此图像元素,如下所示:
EA.Element testImg = viewPkg.Elements.AddNew(imagePath, "Image")创建的元素如下所示:

它创建了一个图像资产(来自工件工具箱),而不是图像元素(来自公共工具箱)。
我需要图像被添加到图像管理器。我请求帮助从公共工具箱创建图像元素,并通过代码(而不是图像资产)将图像设置为图像。
我还在中注意到这个选项:

更新t_image表的当前代码:
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编码的字符串
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表中:
Session.Repository.Execute("INSERT INTO t_image VALUES(" + imgCount + ",'" + imgPath+".bmp" + "','Bitmap','"+ImageBase64+"')");发布于 2018-06-18 07:52:44
这实际上是创建一个<<image>> Artifact (或者您可以使用一个Boundary)并为它分配一个备用图像。图像需要放置在EA的图像库中。您可以在this SO answer中阅读如何实现这一目标。
https://stackoverflow.com/questions/50904445
复制相似问题