| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 988 人关注过本帖, 1 人收藏
标题:如何理解hpdf_color 这个结构
只看楼主 加入收藏
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
结帖率:96.72%
收藏(1)
已结贴  问题点数:20 回复次数:18 
如何理解hpdf_color 这个结构
这几天在研究libhpdf.dll这个pdf生成库,有个结构没法理解,麻烦论坛的大佬解答疑惑。

先看这个类定义:
#include "apdf.h"
typedef struct _HPDF_RGBColor {
    HPDF_REAL   r;
    HPDF_REAL   g;
    HPDF_REAL   b;
} HPDF_RGBColor;

这个HPDF_REAL 就是个浮点数。
typedef  float  HPDF_REAL;

void
show_description  (HPDF_Page          page,
                   HPDF_REAL          x,
                   HPDF_REAL          y,
                   const char   *text)
{
    float fsize = HPDF_Page_GetCurrentFontSize (page);
    HPDF_Font font = HPDF_Page_GetCurrentFont (page);
    HPDF_RGBColor c = HPDF_Page_GetRGBFill (page); &&这里的c是个数值

    HPDF_Page_BeginText (page);
    HPDF_Page_SetRGBFill (page, 0, 0, 0);
    HPDF_Page_SetTextRenderingMode (page, HPDF_FILL);
    HPDF_Page_SetFontAndSize (page, font, 10);
    HPDF_Page_TextOut (page, x, y - 12, text);
    HPDF_Page_EndText (page);

    HPDF_Page_SetFontAndSize (page, font, fsize);
    HPDF_Page_SetRGBFill (page, c.r, c.g, c.b); &&从这里看,这个c应该是个结构
}

我的vfp 代码:
hpdf=hpdf_new(0,0)
hpage=hpdf_addpage(hpdf)
ncolor=hpdf_page_getrgbfill(hpage) &&获得颜色值45718296,这应该是个结构吧?
我应该怎么得到这个ncolor的r,g,b值???
搜索更多相关主题的帖子: page typedef 结构 text float 
2023-10-22 17:32
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
HPDF_Page_GetRGBFill 函数的说明
HPDF_Page_GetRGBFill
#include "apdf.h"

typedef struct _HPDF_RGBColor {
    HPDF_REAL   r;
    HPDF_REAL   g;
    HPDF_REAL   b;
} HPDF_RGBColor;

HPDF_RGBColor
HPDF_Page_GetRGBFill  (HPDF_Page   page);

Description
HPDF_Page_GetRGBFill() returns the current value of the page's filling color. HPDF_Page_GetRGBFill() is valid only when the page's filling color space is HPDF_CS_DEVICE_RGB.

Parameter
page
The handle of a page object.

Returns
When HPDF_Page_GetRGBFill() succeed, it returns the current value of the page's filling color. Otherwise it returns {0, 0, 0}.
2023-10-22 17:36
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:332
专家分:804
注 册:2021-1-9
收藏
得分:4 
十六进制的RGB吧  加透明度
2023-10-22 18:29
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
回复 3楼 nbwww
和windows不一样的颜色结构。
2023-10-22 19:20
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:4 
三个颜色分量分别是除以 255 后的值,也就是 255 用 1.0 表示, 128 用 0.5 表示
HPDF_Page_SetRGBFill (page, 1,1,1) 是白色, HPDF_Page_SetRGBFill (page, 0,0,1) 是蓝色

1楼的 c, 我倾向于是指向结构数据的地址指针

这家伙很懒,啥也没留下
2023-10-22 20:07
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:232
专家分:1746
注 册:2023-6-29
收藏
得分:4 
45718296 这个是个地址, 保存的HPDF_RGBColor结构的数据
2023-10-22 21:42
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
回复 6楼 yiyanxiyin
我试试,,,
2023-10-22 22:43
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
以下是引用yiyanxiyin在2023-10-22 21:42:48的发言:

45718296 这个是个地址, 保存的HPDF_RGBColor结构的数据


如何使地址,我是不是可以用
ctemp=sys(2600,ncolor,12) &&获取这个地址的值

不过好像不对,ctemp是空的。。。

2023-10-23 20:14
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:0 
空?chr(0) ?
如果是 12 (3*4) 个字节的 0 不一定是错误,默认的画笔颜色本来就是黑色 {0,0,0}

这家伙很懒,啥也没留下
2023-10-23 21:23
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
回复 9楼 csyx
对哦
2023-10-23 22:16
快速回复:如何理解hpdf_color 这个结构
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037818 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved