uo_photo.sru

来自「pb开发的摄像头 控制源代码」· SRU 代码 · 共 134 行

SRU
134
字号
$PBExportHeader$uo_photo.sru
$PBExportComments$用于: 获取/显示 相片
forward
global type uo_photo from picture
end type
end forward

global type uo_photo from picture
integer width = 553
integer height = 556
boolean focusrectangle = false
end type
global uo_photo uo_photo

type variables

end variables

forward prototypes
public function integer of_getphoto (string as_fullname, ref blob abb_photo)
public function integer of_setphoto (readonly blob abb_photo)
public subroutine of_clearphoto ()
end prototypes

public function integer of_getphoto (string as_fullname, ref blob abb_photo);/**************************************************
*
* Function: Get photo indicated by as_fullName and return it to abb_photo
* Parameter: 	as_fullName - in,  photo's full path like 'c:\photo.bmp'
*					abb_photo - out, stored the photo
* Return VAlue:	Null - if any parameter is null
*						-1   - an error occur
*						 1   - success  
*
***************************************************/
long		rtn
long		ll_fLen		// photo size
int		li_hFile		// handle to the photo
int		li_loops
int		i
blob		lbb_Photo	
blob		lbb_buffer

//
// Validate the function parameter
//
if IsNull(as_fullName) or IsNull(abb_photo) then
	SetNull(rtn)
	Return(rtn)
end if

if not FileExists(as_fullName) then
	MessageBox('错误', '图片文件不存在!')
	Return -1
end if

//
// get photo from file 
//
li_hFile = FileOpen(as_fullName, StreamMode!, Read!, LockWrite!)
if li_hFile = -1 or IsNull(li_hFile) then
	MessageBox('错误', '获取文件句柄失败!')
	Return -1
end if

ll_fLen = FileLength(as_fullName)
if ll_fLen = -1 or IsNull(ll_fLen) then
	MessageBox('错误', '获取文件大小失败!')
	Return -1
end if

if ll_fLen > 32765 then
	if Mod(ll_fLen, 32765) = 0 then
		li_loops = ll_fLen / 32765
	else
		li_loops = (ll_fLen / 32765) + 1
	end if
else
	li_loops = 1
end if

for i = 1 to li_loops step 1
	FileRead(li_hFile, lbb_buffer)
	lbb_photo += lbb_buffer
next

FileClose(li_hFile)

//
// Success
//
abb_photo = lbb_photo

return 1
end function

public function integer of_setphoto (readonly blob abb_photo);/*****************************************************
*
* Function: Display photo stored in abb_photo
* Parameter: abb_photo - in, blob stored the photo
* Return value: -1 - error occur
*					  1 - Success
*
*****************************************************/
int	rtn

if IsNull(abb_photo) then
	SetNull(rtn)
	Return rtn
end if

rtn = This.SetPicture(abb_photo)
if rtn = 1 then
	Return 1			// Success
else
	MessageBox('错误', '显示相片失败!')
	Return -1
end if
end function

public subroutine of_clearphoto ();/*******************************
*
* Clear the picture displayed in uo_photo
*
*******************************/
This.pictureName = '$NoPhoto$'
end subroutine

on uo_photo.create
end on

on uo_photo.destroy
end on

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?