如何获得图层真彩色
目前图层为真彩色255,255,255,使用vla-gei-color和tblobjname获得的是7号色 highflybird大师写的;;;下面的是几个简单的颜色函数
;;;==========================
;;;把truecolordlg
;;;420构成的数值返回RGB列表
;;;==========================
(defun Number->RGB (color)
(list (lsh color -16)
(lsh (lsh color 16) -24)
(lsh (lsh color 24) -24)
)
)
;;;==========================
;;;把truecolordlg
;;;420构成的数值返回RGB列表.
;;;==========================
(defun RGB->Number (R G B)
(+ (lsh R 16) (lsh G 8) B)
)
;;;==========================
;;;RGB转化成索引号
;;;==========================
(defun RGB->Index (ColorObj r g b /)
(if (and (equal 0 r 10) (equal 0 g 10) (equal 0 b 10))
0
(progn
(vla-setRGB ColorObj r g b)
(vla-get-ColorIndex ColorObj)
)
)
)
;;;==========================
;;;索引号转化成RGB
;;;==========================
(defun Index->RGB (ColorObj ci /)
(vla-put-ColorIndex ColorObj ci)
(list (vla-get-red ColorObj)
(vla-get-green ColorObj)
(vla-get-blue ColorObj)
)
) ;;;lay是已经获取的layer对象
(setq cor (vla-get-TrueColor lay)) ;;;获取真彩对象
(setq Blue_cor (vla-get-Blue cor)) ;;;蓝色
(setq Green_cor (vla-get-Green cor));;;绿色
(setq Red_cor (vla-get-Red cor)) ;;;红色 本帖最后由 llsheng_73 于 2022-8-1 20:23 编辑
直接获取
(setq Tcolor(vlax-get-property(vlax-invoke-method *layers 'item"0")'TrueColor))
(mapcar'(lambda(x)(vlax-get-property Tcolor x))'(Red Green Blue))
页:
[1]