꧁晓看天色꧂ 2022-04-21 14:45
浏览 22
已结题

shape转成Image后图片就变小了

excel中有张图,复制到剪贴版,以bitmap格式保存后,图片就变小了,为什么?

代码如下:

 Dim bitmap1 As Bitmap = GetShapeImage(shp)

bitmap1.Save(fp)

函数GetShapeImage代码:

 Public Shared Function GetShapeImage(ByVal shp As Excel.Shape) As Bitmap
        On Error Resume Next '获取Excel中的Shape并转为image
        Clipboard.Clear() '清空
        shp.CopyPicture(Appearance:=Excel.XlPictureAppearance.xlScreen, Format:=Excel.XlCopyPictureFormat.xlBitmap)
        If Clipboard.GetDataObject.GetDataPresent(DataFormats.Bitmap) Then 'Clipboard.ContainsImage() Then
            Dim curImage As System.Drawing.Image = Clipboard.GetImage()
            Return curImage
        End If
        Return Nothing
    End Function

保存后再导入图片,就发现图片变小了,应该是保存时就已经变小了。

现在改成这种方式,图片大小就正常了:

                       shp.CopyPicture()
                        With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
                            .Parent.Select()
                            .Paste()
                            '.chartBorder.linestyle = Excel.XlLineStyle.xlLineStyleNone
                            .ChartArea.Border.linestyle = Excel.XlLineStyle.xlLineStyleNone
                            '.ChartArea.Format.Line.Visible = False
                            .Export(fp)
                            .Parent.Delete()
                        End With

求解?想知道原因。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月29日
    • 创建了问题 4月21日

    悬赏问题

    • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
    • ¥15 求caverdock使用教程
    • ¥15 Coze智能助手搭建过程中的问题请教
    • ¥15 12864只亮屏 不显示汉字
    • ¥20 三极管1000倍放大电路
    • ¥15 vscode报错如何解决
    • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
    • ¥15 python随机森林对两个excel表格读取,shap报错
    • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
    • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。