![](/img/trans.png)
[英]How to convert an image to byte array without converting its type to JPEG
[英]how to convert jpeg to byte array without losing its quality
我在这里做的是我正在使用ftp将图像文件从终端复制到我的服务器。 但是,当我检查服务器中的图片时,它突然变成质量差的图像。
我开始认为可能是因为我从图像到字节数组的转换。 有人可以帮忙吗?
这是我的代码..
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();
}
System.Drawing.Imaging.ImageFormat.Gif
是你的问题。 GIF是一种相当古老的格式,限制为256种颜色。
如果你想避免重新压缩Jpeg,我建议你试试ImageFormat.Png
,这是一种更现代的格式,但仍然没有损失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.