Bitmap.Save 保存图片,保存成了文件夹了

a888891015 2013-02-27 10:45:28
下面是我要将内存里面的一张图片保存成jpeg格式,但是调试的时候报告“A generic error occurred in GDI+.”错误,打开P文件夹下面多了一个“526392.jpg”文件夹,将调试拖到上一步,并把这个P文件夹下面的“526392.jpg”文件夹删除,运行就没有报错,什么原因?

代码:
IDataObject clipboardData = Clipboard.GetDataObject();//粘贴板对象
//检查剪贴板中的对象是否是图片,如果是图片则将其保存为指定格式的图片文件
if (clipboardData.GetDataPresent(DataFormats.Bitmap))
{
Bitmap pdfBitmap = (Bitmap)clipboardData.GetData(DataFormats.Bitmap);
if (ImgWidth > 0 || ImgHeight > 0)
{
pdfBitmap = KiResizeImage(pdfBitmap, ImgWidth, ImgHeight);//对图片进行缩放到对应的宽和高
}
pdfBitmap.Save(imageDirectoryPath);//这里的是H:/P/526392.jpg
pdfBitmap.Dispose();
}
...全文
288 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
a888891015 2013-02-27
  • 打赏
  • 举报
回复
这个的问题在于save保存文件的时候发现已经存在了对应文件名的文件夹了,比如要保存H:/P/526392.jpg 文件,但是已经存在了526392.jpg文件夹了所以保存不了文件而报错。后面仔细检查代码发现,之前的代码有错误,生成文件夹的不是save()函数,而是上面的代码: if (!Directory.Exists(imageDirectoryPath)) { Directory.CreateDirectory(imageDirectoryPath); } 这个才是罪恶之源。 不过任然很感谢1楼,我以为是save()函数造成的,所以我的做法是: //try //{ pdfBitmap.Save(Path.Combine(endPath, endName), format); //} //catch //{ // if (Directory.Exists(imageDirectoryPath)) // { // Directory.Delete(imageDirectoryPath); // pdfBitmap.Save(Path.Combine(endPath, endName), format); // } //}
蝶恋花雨 2013-02-27
  • 打赏
  • 举报
回复
pdfBitmap.Save(imageDirectoryPath);//这里的是H:/P/526392.jpg 这里加上个判断一下要生成的jpg是否存在。不存在在保存。 if(file.exists(server.mappath(imageDirectoryPath)))//不存在 { pdfBitmap.Save(imageDirectoryPath);//这里的是H:/P/526392.jpg }

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧