我在这里做的是我正在使用ftp从终端将图像文件复制到我的服务器。但是当我检查服务器中的图片时,它突然变成质量较差的图像。如何将jpeg转换为字节数组而不损失其质量
我开始想,也许这是因为我从图像转换为字节数组。谁能帮忙?
这里是我的代码..
Stream stream = FileUploadPic.FileContent;
System.Drawing.Image i = new Bitmap(stream);
var abort = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
var thumbnail = i.GetThumbnailImage(300, 300, abort, IntPtr.Zero);
byte[] bytes = imageToByteArray(thumbnail);
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(path);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
request.ContentLength = bytes.Length;
Stream req_Stream = request.GetRequestStream();
req_Stream.Write(bytes, 0, bytes.Length);
req_Stream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
这是imageToByteArray
功能:
public byte[] imageToByteArray(System.Drawing.Image imageIn) {
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
除非你的'imageToByteArray'做了一些奇怪的事情,这不是因为你转换为'byte []'。 – Blorgbeard 2013-04-22 03:35:02
@ Blorgbeard - 这是我在imageToByteArray中的代码 – user2272856 2013-04-22 05:27:48
public byte [] imageToByteArray(System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } – user2272856 2013-04-22 05:28:29