图片对象无法保存

时间:2018-07-10 09:27:10

标签: c# image image-processing model-view-controller word-cloud

我尝试获取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文件。

我是工程新手,所以我很困惑,需要您的帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

尝试将文件保存到当前目录时,可能存在文件夹权限问题。您可以尝试使用

之类的文件指定文件的完整路径。
y.Save(Server.MapPath("~/App_Data/wordcloud.jpg"), myImageCodecInfo, myEncoderParameters);

看看是否可行