以下是我原来的VB代码,现在搞C#,不知道应该怎么转了,55555555555
代码功能是:读取Olympus相机当前预览图像并显示到picPreview(PictureBox控件)
请高人帮忙转一下C#代码,谢谢!!!!!!Private Sub UpdatePreview()
Dim lngPicSize As Long
Dim lngFileNum As Long
Dim lngC As Long
Dim strFileName As String
Err.Clear
On Error GoTo FunError
Rye1.Preview 0 //Rye1是Olympus的相机接口控件
Rye1.propCurrentPicture(0) = 0 lngPicSize = Rye1.propPicSize(0)
If lngPicSize <> 0 Then
ReDim bytPicbuff(lngPicSize) As Byte
Rye1.GetPreview 0, lngPicSize, bytPicbuff
///////////////////////////////////////////////////////////
//主要是这一段不知道怎么转????????/////////////////
///////////////////////////////////////////////////////////
lngFileNum = FreeFile
strFileName = "BET_Photo_Preview.jpg"
Open strFileName For Random As lngFileNum Len = 1
For lngC = 1 To lngPicSize
Put lngFileNum, lngC, bytPicbuff(lngC - 1)
Next
Close lngFileNum
Set picPreview.Picture = LoadPicture(strFileName)
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
End If
FunError:
If Err.Number <> 0 Then
MsgBox Err.Number
End If
End Sub
代码功能是:读取Olympus相机当前预览图像并显示到picPreview(PictureBox控件)
请高人帮忙转一下C#代码,谢谢!!!!!!Private Sub UpdatePreview()
Dim lngPicSize As Long
Dim lngFileNum As Long
Dim lngC As Long
Dim strFileName As String
Err.Clear
On Error GoTo FunError
Rye1.Preview 0 //Rye1是Olympus的相机接口控件
Rye1.propCurrentPicture(0) = 0 lngPicSize = Rye1.propPicSize(0)
If lngPicSize <> 0 Then
ReDim bytPicbuff(lngPicSize) As Byte
Rye1.GetPreview 0, lngPicSize, bytPicbuff
///////////////////////////////////////////////////////////
//主要是这一段不知道怎么转????????/////////////////
///////////////////////////////////////////////////////////
lngFileNum = FreeFile
strFileName = "BET_Photo_Preview.jpg"
Open strFileName For Random As lngFileNum Len = 1
For lngC = 1 To lngPicSize
Put lngFileNum, lngC, bytPicbuff(lngC - 1)
Next
Close lngFileNum
Set picPreview.Picture = LoadPicture(strFileName)
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
End If
FunError:
If Err.Number <> 0 Then
MsgBox Err.Number
End If
End Sub
yourPictureBox.Image = Image.From( yourImageFileName );//Such as "BET_Photo_Preview.jpg"
strFileName = "BET_Photo_Preview.jpg"
Open strFileName For Random As lngFileNum Len = 1
For lngC = 1 To lngPicSize
Put lngFileNum, lngC, bytPicbuff(lngC - 1)
Next
Close lngFileNum
FileStream fs = new FileStream( yourFile, FileMode.OpenOrCreate );
for( long i = 0; i < lngPicSize; i++ )
fs.WriteByte( bytPicbuff[ i - 1] );
fs.Flush();
fs.Close();
yourPictureBox.Image = Image.FromFile( yourImageFileName );//Such as "BET_Photo_Preview.jpg"
{
int intPicSize;
string strFileName="BET_Photo_Preview.jpg"; try
{
Rye1.Preview(0);
Rye1.set_propCurrentPicture(0,0); intPicSize=Rye1.get_propPicSize(0);
if(intPicSize!=0)
{
byte[] bytPicbuff=new byte[intPicSize];
Rye1.GetPreview(0,intPicSize,bytPicbuff);
FileStream fs = new FileStream(strFileName,FileMode.OpenOrCreate );
for(int i=0;i<intPicSize;i++)
{
fs.WriteByte(bytPicbuff[i]);
}
fs.Flush();
fs.Close();
picPreview.Image=Image.FromFile(strFileName); }
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Rye1.GetPreview(0,intPicSize,bytPicbuff);
这句操作完后,bytPicbuff是否有数据。
是否有图片文件产生。
这句操作完后,bytPicbuff好像没数据,数组值全为0会是什么原因????