openslide格式封装:
typedef struct_openslide openslide_t;
struct _openslide{
const struct _openslide_ops *ops;
struct _openslide_level **levels;
void *data;
int32_t level_count;
// associated images
GHashTable *associated_images; // created automatically
const char **associated_image_names; //filled in automatically from hashtable
// metadata
GHashTable *properties; // createdautomatically
const char **property_names; // filled inautomatically from hashtable
// cache
struct _openslide_cache *cache;
// error handling, NULL if no error
gpointer error; // must use g_atomic_pointer!
};
API函数:
1.
bool openslide_can_open ( constchar * filename )
参数:filename 需要检查的文件名
作用:
如果openslide_open()函数可以返回一个有效的openslide_t文件,openslide_can_open返回true,否则返回false
一般不需要用此函数
2.
openslide_t* openslide_open ( const char * filename )
作用:打开切片文件
参数: filename需要打开的文件名
返回值:如果成功返回一个openslide_t文件指针
3.
void openslide_get_level_dimensions ( openslide_t* osr,
int32_t level,
int64_t * w,
int64_t * h
)
作用:得到某一级图像的尺度
参数:osr OpenSlide文件
level 指定的级数
w 输出指向该级图像宽度的指针,输出-1如果出错
h 输出指向该级图像高度的指针
4.
const char* openslide_get_error ( openslide_t * osr )
作用:得到当前的错误信息,如果返回了一个非NULL值则说明出错,应调用openslide_close()释放资源
参数:osr openslide_t文件指针
返回值:描述错误信息的字符串,无措则返回NULL
5.
void openslide_close ( openslide_t * osr )
作用:关闭openslide_t文件
参数:osr 文件指针
6. const char* openslide_get_property_value ( openslide_t*osr, const char * name
)
作用:得到想要的切片信息
参数:osr 指定文件
name 想要得到的信息,必须为指定下列宏定义:
#define OPENSLIDE_PROPERTY_NAME_COMMENT "openslide.comment"
切片评论
#define OPENSLIDE_PROPERTY_NAME_VENDOR "openslide.vendor"
切片提供商
#define OPENSLIDE_PROPERTY_NAME_QUICKHASH1 "openslide.quickhash-1"
"quickhash-1"的值
#define OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR "openslide.background-color"
切片的背景色
#define OPENSLIDE_PROPERTY_NAME_OBJECTIVE_POWER "openslide.objective-power"
。。。这个不懂
#define OPENSLIDE_PROPERTY_NAME_MPP_X "openslide.mpp-x"
Level 0尺度下x方向上每个像素的毫米数
#define OPENSLIDE_PROPERTY_NAME_MPP_Y "openslide.mpp-y"
Level 0尺度下y方向上每个像素的毫米数
#define OPENSLIDE_PROPERTY_NAME_BOUNDS_X "openslide.bounds-x"
切片非空区域起始处x坐标
#define OPENSLIDE_PROPERTY_NAME_BOUNDS_Y "openslide.bounds-y"
切片非空区域起始处y坐标
#define OPENSLIDE_PROPERTY_NAME_BOUNDS_WIDTH "openslide.bounds-width"
非空矩形区域的宽度
#define OPENSLIDE_PROPERTY_NAME_BOUNDS_HEIGHT "openslide.bounds-height"
非空矩形区域的高度
7.
const char* openslide_get_comment ( openslide_t* osr )
作用:得到切片的评价信息
参数:osr 文件指针
返回值:返回评论字符串
8.
void openslide_read_associated_image ( openslide_t* osr, const char * name,
uint32_t * dest
)
作用:提取切片的附属图像到目标内存,目标内存的最小容量为4*width*height,width和height通过openslide_get_associated_image_dimensions()函数获得
参数:osr 切片文件
dest 要ARGB的数据的目标地址
name 想要获取的附属图像的名字,通过 openslide_get_associated_image_names()函数获得。
9.
void openslide_get_associated_image_dimensions ( openslide_t* osr,
const char * name,
int64_t * w,
int64_t * h
)
作用:取得切片附属图像的尺寸,得到尺寸后用openslide_read_associated_image()读取附属图像。
参数:
osr 切片文件
name 附属切片的名字,名字由openslide_get_associated_image_names()函数获得
w 保存获得的附属图像的宽度,如果出错为-1
h 保存获得的附属图像的高度,如果出错为-1
10.
const char* const*openslide_get_associated_image_names ( openslide_t * osr )
作用:获得存取附属图像名字的数组
参数:osr 切片文件
返回值:成功返回名字数组,出错则返回空数组
11.
void openslide_read_region ( openslide_t * osr,
uint32_t * dest,
int64_t x,
int64_t y,
int32_t level,
int64_t w,
int64_t h
)
作用:提取整个切片的ARGB数据到目标内存,dest的容量最小为w*h*4,如果出错,目标内存会被清理掉。
参数:
osr 切片文件.
dest 存放 ARGB data的内存起始地址
x 左上角x坐标, 在level 0 级别
y 左上角y坐标, 在level 0 级别
level Thedesired level.
w 非空区域的宽度
h 非空区域的高度
12.
double openslide_get_level_downsample ( openslide_t* osr,
int32_t level
)
作用:获得指定级别图像的缩小倍数
参数:osr 切片文件
level 所指定的级别
返回值:成功返回缩小倍数,出错或level超出范围返回-1
13. int32_t openslide_get_level_count ( openslide_t* osr )
作用:获得切片总共有几个level
参数:osr 切片文件
返回值:成功返回level的数目,出错返回-1
14. int32_t openslide_get_best_level_for_downsample ( openslide_t* osr,
double downsample
)
作用:得到指定缩放倍数的最佳级别来显示缩放
参数:osr 切片文件
downsample 缩小倍数
返回值:成功返回最佳级别数,出错返回-1