我正在尝试将我在C#winform应用程序中的System.Drawing.Bitmap
变量上传为我的服务器上的.png
图像。现在我知道如何将Bitmap
保存为.png
文件,然后将其上传到我的服务器。
//Save bitmap variable as .png
bitmap.Save("img_1.png", ImageFormat.Png);
然后将其上传到我的服务器,如下所示:
using (WebClient client = new WebClient())
{
client.Credentials = new NetworkCredential("FTP_username",
"FTP_password");
client.UploadFile("ftp://100.100.100.100/new_folder/img_1.png",
"img_1.png");
}
如何直接在我的服务器上将Bitmap bitmap
变量作为.png
文件上传,而不必先在本地将其保存为新的.png
文件?
答案 0 :(得分:3)
您可以将Bitmap
保存到流中并上传流:
using (WebClient client = new WebClient())
using (var ms = new MemoryStream())
{
bitmap.Save(ms, ImageFormat.Png);
client.Credentials = new NetworkCredential("FTP_username", "FTP_password");
client.UploadData("ftp://100.100.100.100/new_folder/img_1.png", ms.ToArray());
}
答案 1 :(得分:0)
试试这个:
using System.Drawing;
Bitmap b = (Bitmap)Bitmap.FromStream(file.InputStream);
using (MemoryStream ms = new MemoryStream()) {
b.Save(ms, ImageFormat.Png);
// use the memory stream to base64 encode..
}
答案 2 :(得分:0)
由于该方法为UploadFile
,因此将该文件的网址设为String
作为第二个参数。
我建议用户如果不知道PNG文件,那么用户就不会...
%TEMP%\RandString\ImageName.jpg
%TEMP%\RandString\
。