多个二维码下载
for ( int i= 0 ; i< 20 ; i++ ) {
Dictionary< string , Stream> myDictionary = new Dictionary < string , Stream > ( ) ;
string QR = "show QR info" + i;
string head = "XiaoPOooo" + i+ ".jpg" ;
Bitmap bt = new Bitmap ( 280 , 280 ) ;
string enCodeString = QR;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder ( ) ;
bt = qrCodeEncoder. Encode ( enCodeString, Encoding. UTF8) ;
qrCodeEncoder. QRCodeEncodeMode = QRCodeEncoder. ENCODE_MODE. BYTE;
qrCodeEncoder. QRCodeScale = 10 ;
qrCodeEncoder. QRCodeVersion = 0 ;
qrCodeEncoder. QRCodeErrorCorrect = QRCodeEncoder. ERROR_CORRECTION. M;
qrCodeEncoder. QRCodeBackgroundColor = Color. Black;
qrCodeEncoder. QRCodeForegroundColor = Color. White;
System. IO. MemoryStream ms = new System. IO. MemoryStream ( ) ;
bt. Save ( ms, System. Drawing. Imaging. ImageFormat. Png) ;
Stream stream = new MemoryStream ( ms. ToArray ( ) ) ;
myDictionary. Add ( head, stream) ;
}
this . Response. ContentType = "application/octet-stream" ;
string strFileNameEncode = HttpUtility. UrlEncode ( "QR包" + ".zip" ) ;
this . Response. AddHeader ( "Content-Disposition" , "attachment; filename=" + strFileNameEncode) ;
Encoding encoding = Encoding. GetEncoding ( "Shift-JIS" ) ;
this . Response. BinaryWrite ( ZipPackage ( myDictionary) . ToArray ( ) ) ;
this . Response. Flush ( ) ;
this . Response. End ( ) ;
其中ZipPackage()方法如下
static MemoryStream ZipPackage ( Dictionary< string , Stream> streams)
{
byte [ ] buffer = new byte [ 6500 ] ;
MemoryStream returnStream = new MemoryStream ( ) ;
var zipMs = new MemoryStream ( ) ;
using ( ZipOutputStream zipStream = new ZipOutputStream ( zipMs) )
{
zipStream. SetLevel ( 9 ) ;
foreach ( var kv in streams)
{
string fileName = kv. Key;
using ( var streamInput = kv. Value)
{
zipStream. PutNextEntry ( new ZipEntry ( fileName) ) ;
while ( true )
{
var readCount = streamInput. Read ( buffer, 0 , buffer. Length) ;
if ( readCount > 0 )
{
zipStream. Write ( buffer, 0 , readCount) ;
}
else
{
break ;
}
}
zipStream. Flush ( ) ;
}
}
zipStream. Finish ( ) ;
zipMs. Position = 0 ;
zipMs. CopyTo ( returnStream, 5600 ) ;
}
returnStream. Position = 0 ;
return returnStream;
}
单个二维码下载
string QR = "show QR info" ;
string head = "XiaoPOooo.jpg" ;
Bitmap bt = new Bitmap ( 280 , 280 ) ;
string enCodeString = QR;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder ( ) ;
bt = qrCodeEncoder. Encode ( enCodeString, Encoding. UTF8) ;
qrCodeEncoder. QRCodeEncodeMode = QRCodeEncoder. ENCODE_MODE. BYTE;
qrCodeEncoder. QRCodeScale = 10 ;
qrCodeEncoder. QRCodeVersion = 0 ;
qrCodeEncoder. QRCodeErrorCorrect = QRCodeEncoder. ERROR_CORRECTION. M;
qrCodeEncoder. QRCodeBackgroundColor = Color. Black;
qrCodeEncoder. QRCodeForegroundColor = Color. White;
System. IO. MemoryStream ms = new System. IO. MemoryStream ( ) ;
bt. Save ( ms, System. Drawing. Imaging. ImageFormat. Png) ;
this . Response. ContentType = "application/octet-stream" ;
string strFileNameEncode = HttpUtility. UrlEncode ( head + ".jpg" ) ;
this . Response. AddHeader ( "Content-Disposition" , "attachment; filename=" + strFileNameEncode) ;
Encoding encoding = Encoding. GetEncoding ( "Shift-JIS" ) ;
this . Response. BinaryWrite ( ms. ToArray ( ) ) ;
this . Response. Flush ( ) ;
this . Response. End ( ) ;