插入 Catia V5 CATDrawing 时保存的 png 图像失去透明度

Posted

技术标签:

【中文标题】插入 Catia V5 CATDrawing 时保存的 png 图像失去透明度【英文标题】:Saved png image lose transparency when inserted in Catia V5 CATDrawing 【发布时间】:2021-09-28 00:28:21 【问题描述】:

插入到 Catia V5 CATDrawing 文档时,.png 图像的透明度出现问题。使用System.Drawing.Image.Save() 保存后,图像发生了一些变化。如果使用 Paint.NET 打开新保存的图像,图像是透明的,一切看起来都很好,但是当插入到CATDrawing 中时,图像没有透明度。我无法找出图像中导致透明度损失的变化。 我正在旋转图像,这就是我需要保存它的原因。这是我用来旋转和保存图像的代码。

    Bitmap image1 = (Bitmap)Image.FromFile(sImagePath1, true);
    image1.RotateFlip(RotateFlipType.Rotate90FlipNone);
    image1.MakeTransparent();
    image1.Save(sImagePath2, ImageFormat.Png);

我也尝试过使用 NuGet 包 Magick.NET-Q16-AnyCPU 失败

    using (MagickImage mimg = new(sImagePath1))
    
        mimg.Rotate(90);
        mimg.Write(sImagePath2);
     

并保存为流

    Bitmap image1 = (Bitmap)Image.FromFile(sImagePath1, true);
    image1.RotateFlip(RotateFlipType.Rotate90FlipNone);
    using (FileStream outputFileStream = new(sImagePath2, FileMode.Create))
    
        var stream = new MemoryStream();
        image1.Save(stream, ImageFormat.Png);
        stream.Position = 0;
        stream.CopyTo(outputFileStream);
    

问题:有没有其他通过C#代码旋转和保存图片的解决方案?

【问题讨论】:

【参考方案1】:

您好,我担心 Catia V5 无法导入具有透明度的 png。如果手动将图像放入绘图保持透明度,请自行尝试。我试过了,但在我的情况下它不起作用。

在 Catia 中,您可以手动旋转图片,但不能通过 api。

您可以尝试使用矢量图而不是位图,但这只是我的猜测。

【讨论】:

嗨,是的,您可以在 CATDrawing 中导入具有透明度的 png。例如,如果您使用 Paint.NET 保存图片并将其插入到 CATDrawing 中。当我使用代码旋转并保存图片时,会发生一些变化,并且图片会失去透明度。

以上是关于插入 Catia V5 CATDrawing 时保存的 png 图像失去透明度的主要内容,如果未能解决你的问题,请参考以下文章

vba catia v5 R24起点和边缘终点

FTI v5.3 for CATIA v5R20-R24 Win64 Solutions 1CD

CATIA V5百科全书系列——操作界面模块(User Interface)

catia许可证管理器怎么再次打开???

通过 CATIA VBA 宏导入 .obj 文件

安装catia双击setup出现STARTDIR is not set ,you must launch setup.exe的错误 在线等,多谢了