CorelDRAWX4的VBA插件开发(七)形状的静态编号和一键转位图

本文介绍了CorelDRAW X4中VBA插件的开发,重点关注了形状的静态编号及其在识别形状中的作用,以及如何使用VBA实现一键将形状转换为CMYK位图的功能。静态编号是每个形状独特的标识,不会重复,而ConvertToBitmapEx函数用于转换形状为位图,提供了多种颜色模式和参数调整选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CorelDRAWX4的VBA插件开发(七)形状的静态编号和一键转位图

优先说一些不容易掌握的一些小技巧.

一.静态编号

静态编号就是每个形状Shape对象的属性里面有一个叫作StaticID(静态编号)的这么个功能,它里面是一个长整数Long,我是到后来才发现这个数的,平时并用不上,但是了解了它可以明白程序是怎么来区别每个形状的.

比如,当我们在空画布上画一个框,那么这个形状的静态编号就会被赋值,它不会有重复的编号,是唯一的,而再画另一个形状其编号会+1,若把两个形状群组那其编号会再+1,不管怎么变,整个画布上不会出现相同的编号,CDR就是通过这种方法以不变应万变.下面就来演示一下:

Sub 第一个插件()
    MsgBox CorelDRAW.ActiveShape.StaticID
End Sub

在这里插入图片描述

还是把之前的代码稍作修改,直接用MsgBox 后面带上AcitveShape也就是当前选定的一个形状,再带上静态编号, 这样当我们选中某个形状再按按钮的时候,弹窗就会直接显示一个数字,这个数字就是当前形状的编号了,可以回到CDR进行测试.这里就不再讲了.

演示:

在这里插入图片描述

转换为位图

示例代码:

Sub 第一个插件()
    Set s = CorelDRAW.ActiveShape.ConvertToBitmapEx(cdrCMYKColorImage, False, False, 600, cdrNormalAntiAliasing, True, False, 95)
End Sub

测试:
选中某个群组对象之后点击按钮
在这里插入图片描述

cdrImageType

这个 cdrImageType 的颜色模式枚举包含如下内容:

标题枚举值原版描述备注
cdrBlackAndWhiteImage0Specifies black-and-white黑白图片
cdr16ColorsImage1Specifies 16-color16色
cdrGrayscaleImage2Specifies grayscale灰度
cdrPalettedImage3Specifies paletted调色板色
cdrRGBColorImage4Specifies RGBRGB色
cdrCMYKColorImage5Specifies CMYKCMYK色
cdrDuotoneImage6Specifies duotone双色版色
cdrLABImage7Specifies LABLAB色
cdrCMYKMultiChannelImage8Specifies multi-channel CMYK多通道CMYK色

打开发者文档,我们可以看到如下描述:

Shape.ConvertToBitmapEx

Function ConvertToBitmapEx([Mode As cdrImageType = cdrRGBColorImage], [Dithered As Boolean = False], [Transparent As Boolean = False], [Resolution As Long = 72], [AntiAliasing As cdrAntiAliasingType = cdrNormalAntiAliasing], [UseColorProfile As Boolean = True]) As Shape Member of Shape
The ConvertToBitmapEx converts a shape object to a bitmap.

参数描述
Mode设置图像类型并返回cdrImageType.该参数为可选参数,默认值为“cdrRGBColorImage”
Dithered如果设置为True(-1),启用颜色抖动的方法产生中间过渡色调,默认值为“False”。
Transparent如果设置为True(-1),启用透明背景.默认值为“False”。
Resolution设置分辨率,默认值为72
AntiAliasing设置反锯齿,返回cdrAntiAliasingType该参数可选,默认值为“cdrNormalAntiAliasing(1)”。
UseColorProfile如果设置为True(-1),则使用颜色配置文件,该参数为可选参数,默认值为True

代码释义

Sub 第一个插件()
    Set s = CorelDRAW.ActiveShape.ConvertToBitmapEx(cdrCMYKColorImage, False, False, 600, cdrNormalAntiAliasing, True, False, 95)
End Sub

从前往后依次解释:
cdrCMYKColorImage是转换为CMYK颜色模式
false 第一个FALSE是关闭颜色抖动,第二个FALSE是不启用透明背景
600这个是每英寸的长度内分辨率,也就是DPI
cdrNormalAntiAliasing 抗锯齿模式1
True启用颜色配置文件
False 关闭始终开启叠印黑色
95 叠印黑色最大值为95

这样我们就完成了一键转换位图的功能,要全部转换,则只要加上一个循环即可

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值