1,313
社区成员




//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<jpeg.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMemoryStream *Stream=new TMemoryStream();
TJPEGImage *myJPEG=new TJPEGImage();
if(OpenPictureDialog1->Execute())
myJPEG->LoadFromFile(OpenPictureDialog1->FileName);
myJPEG->SaveToStream(Stream);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
int len;
byte Buf[10000];
TMemoryStream *tmpStream=new TMemoryStream();
TJPEGImage *tjpeg=new TJPEGImage();
len=Socket->ReceiveLength(); //读出包长度
Socket->ReceiveBuf(Buf,len); //接收数据包并读入缓冲区内
tmpStream->Write(Buf,len); //追加入流M中
tjpeg->LoadFromStream(tmpStream); //将流M中的数据读至JPG图像
Image1->Canvas->Draw(0,0,tjpeg);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<jpeg.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMemoryStream *Stream=new TMemoryStream();
TJPEGImage *myJPEG=new TJPEGImage();
if(OpenPictureDialog1->Execute())
myJPEG->LoadFromFile(OpenPictureDialog1->FileName);
myJPEG->SaveToStream(Stream);
Stream->Position=0;
ClientSocket1->Socket->SendStream(Stream);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
int len,pos;
char *Buf=new char[8192];
TMemoryStream *tmpStream=new TMemoryStream();
TJPEGImage *tjpeg=new TJPEGImage();
len=Socket->ReceiveLength();//读出包长度
Socket->ReceiveBuf(Buf,len);//接收数据包并读入缓冲区内
tmpStream->Write(Buf,len);//追加入流M中
tmpStream->Position=0;
tjpeg->LoadFromStream(tmpStream);//将流M中的数据读至JPG图像
tjpeg->SaveToFile("C://temp.jpeg");
}
//---------------------------------------------------------------------------
现在图片小于8K的可以实现,大于8K的只有部分图片,代码应如何处理? 刚接触,麻烦帮忙看一下,谢谢!#include <vcl.h>
#pragma hdrstop
#include<jpeg.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMemoryStream *Stream=new TMemoryStream();
TJPEGImage *myJPEG=new TJPEGImage();
if(OpenPictureDialog1->Execute())
myJPEG->LoadFromFile(OpenPictureDialog1->FileName);
myJPEG->SaveToStream(Stream);
ClientSocket1->Socket->SendStream(Stream);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
int len;
byte Buf[10000];
TMemoryStream *tmpStream=new TMemoryStream();
TJPEGImage *tjpeg=new TJPEGImage();
len=Socket->ReceiveLength(); //读出包长度
Socket->ReceiveBuf(Buf,len); //接收数据包并读入缓冲区内
tmpStream->Write(Buf,len); //追加入流M中
tjpeg->LoadFromStream(tmpStream); //将流M中的数据读至JPG图像
Image1->Canvas->Draw(0,0,tjpeg);
}
额,是的,当时加入了SendStream 忘了复制在这里。。。这样依旧不可以,请问哪里还有问题。谢谢!