C#根据http和ftp图片地址获取对应图片
本文实例为大家分享了C#根据http和ftp地址获取对应图片的具体代码,供大家参考,具体内容如下
publicclassGetBitmapImageClass { publicBitmapSourceGetImageHttp(stringurl,intwidth) { varimage=newBitmapImage(); intBytesToRead=100; if(!string.IsNullOrEmpty(url)) { WebRequestrequest=WebRequest.Create(newUri(url,UriKind.Absolute)); request.Timeout=-1; WebResponseresponse=request.GetResponse(); StreamresponseStream=response.GetResponseStream(); BinaryReaderreader=newBinaryReader(responseStream); MemoryStreammemoryStream=newMemoryStream(); byte[]bytebuffer=newbyte[BytesToRead]; intbytesRead=reader.Read(bytebuffer,0,BytesToRead); while(bytesRead>0) { memoryStream.Write(bytebuffer,0,bytesRead); bytesRead=reader.Read(bytebuffer,0,BytesToRead); } image.BeginInit(); image.DecodePixelWidth=width; image.CacheOption=BitmapCacheOption.OnLoad; memoryStream.Seek(0,SeekOrigin.Begin); image.StreamSource=memoryStream; image.EndInit(); image.Freeze(); memoryStream.Close(); reader.Close(); responseStream.Close(); response.Close(); } returnimage; } publicBitmapSourceGetImageFtp(stringurl,intwidth) { varimage=newBitmapImage(); if(!string.IsNullOrEmpty(url)) { FtpWebRequestreqFtp; reqFtp=(FtpWebRequest)FtpWebRequest.Create(newUri(url)); reqFtp.Method=WebRequestMethods.Ftp.DownloadFile; reqFtp.UseBinary=true; FtpWebResponseresponse=(FtpWebResponse)reqFtp.GetResponse(); StreamftpStream=response.GetResponseStream(); MemoryStreammStream=newMemoryStream(); ftpStream.CopyTo(mStream); mStream.Position=0; intlength=(int)mStream.Length; byte[]returnbyte=newbyte[length]; mStream.Read(returnbyte,0,length); mStream.Close(); ftpStream.Close(); response.Close(); System.IO.MemoryStreamstream=newSystem.IO.MemoryStream(returnbyte); image.BeginInit(); image.DecodePixelWidth=width; image.CacheOption=BitmapCacheOption.OnLoad; stream.Seek(0,SeekOrigin.Begin); image.StreamSource=stream; image.EndInit(); image.Freeze(); stream.Close(); } returnimage; } [DllImport("gdi32.dll",SetLastError=true)] privatestaticexternboolDeleteObject(IntPtrhObject); publicBitmapSourceToBitmapSource(System.Drawing.Bitmapbmp) { try { varptr=bmp.GetHbitmap(); varsource=System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( ptr,IntPtr.Zero,Int32Rect.Empty,System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); DeleteObject(ptr); returnsource; } catch { returnnull; } } //获取缩略图 publicBitmapSourceGetBitImage(stringimageLink) { //"http://172.17.1.231:8083/3050273262379466760/2017/05/28/09/340800100999/09163448402.jpg?fid=1267520" if(imageLink.StartsWith("http://")) { returnGetImageHttp(imageLink,200); } //ftp格式的 elseif(imageLink.StartsWith("ftp://")) { returnGetImageFtp(imageLink,200); } } //获取原图 publicBitmapSourceGetHightBitImage(stringimageLink) { //"http://172.17.1.231:8083/3050273262379466760/2017/05/28/09/340800100999/09163448402.jpg?fid=1267520" if(imageLink.StartsWith("http://")) { returnGetImageHttp(imageLink,0); } //ftp格式的 elseif(imageLink.StartsWith("ftp://")) { returnGetImageFtp(imageLink,0); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。