shape转成Image保存,图片就变小了

꧁晓看天色꧂ 2022-04-21 14:45:09

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

求解?想知道原因。

...全文
82 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
VB基础类

7617

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
编辑了帖子
2022-04-21 14:55
创建了帖子 (查看)
2022-04-21 14:45
社区公告
暂无公告