我尝试获取wordcloud图像,所以我使用两个列表单词和频率,但我得到了wordcloud,但是我使用MVC C#,实际上我不知道如何发送此控制器进行查看,所以我决定保存图像对象作为jpeg文件,但保存功能使我出错System.Runtime.InteropServices.ExternalException通用错误。这是我的代码: 首先,我使用twitter获得趋势,并将其存储为单词列表具有29个值,其次我使列表具有29个值:
var trends = Trends.GetTrendsAt(1);
List<string> words = new List<string>();
List<int> frequencies = new List<int>();
foreach(var trend in trends.Trends)
{
if (g < 30)
{
words.Add(trend.Name);
g++;
}
}
for(int i = 29 ; i >= 1; i--)
{
frequencies.Add(i);
}
var wc = new WordCloudGen(1000, 600);
Bitmap y = new Bitmap(wc.Draw(words, frequencies));
myImageCodecInfo = GetEncoderInfo("image/jpeg");
myEncoder = Encoder.Quality;
myEncoderParameters = new EncoderParameters(1);
myEncoderParameter = new EncoderParameter(myEncoder, 50L);
myEncoderParameters.Param[0] = myEncoderParameter;
y.Save("wordcloud.jpg", myImageCodecInfo, myEncoderParameters);
wc.Draw(words.frequencies)实际上变成了图像对象,我尝试将其转换为位图,所以我认为我可以将其另存为jpeg文件。
我是工程新手,所以我很困惑,需要您的帮助,谢谢。
答案 0 :(得分:1)
尝试将文件保存到当前目录时,可能存在文件夹权限问题。您可以尝试使用
之类的文件指定文件的完整路径。y.Save(Server.MapPath("~/App_Data/wordcloud.jpg"), myImageCodecInfo, myEncoderParameters);
看看是否可行