上传图片后出现的问题。图片变成缩略图后出现的问题。百思不得其解。
我做了个在首页FLASH显示,但上传的图片显示不了。不是路径出了问题。图片可以看到。那个FLASH也没问题。结果我拿了一张生成缩略图片用PHOTOSHOP打开。发现PHOTOSHOP居然打不开。错误提示是:“不能完成请求,因为找到不知名的或无效的JPEG标志符类型”。
我用的生成缩略图是在网上看到的代码。代码如下:
public void MakThumbnail(string originalImagePath,string thumbnailPath,int width,int height,string mode)
{
System.Drawing.Image originalImage;
originalImage=System.Drawing.Image.FromFile(originalImagePath);
int towidth=width;
int toheight=height;
int x=0;
int y=0;
int ow=Convert.ToInt32(originalImage.Width);
int oh=Convert.ToInt32(originalImage.Height);
switch( mode )
{
// "HW " '指定高宽缩放(可能变形)
case "HW " :
break;
// "W " '指定宽,高按比例
case "W ": toheight = Convert.ToInt32(originalImage.Height) * width / Convert.ToInt32(originalImage.Width);
break;
// "H " '指定高,宽按比例
case "H ": towidth = Convert.ToInt32(originalImage.Width) * height / Convert.ToInt32(originalImage.Height);
break;
// "Cut " 指定高宽裁减(不变形)
}
//新建一个bmp图片
System.Drawing.Bitmap bitmap=new Bitmap(towidth,toheight);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode=System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage,new Rectangle(0,0,towidth,toheight),new Rectangle(x,y,ow,oh),GraphicsUnit.Pixel);
try
{
// '以jpg格式保存缩略图
bitmap.Save(thumbnailPath);
}
catch(Exception ex)
{
throw ex;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
生成缩略图的后缀名跟上传图片的后缀后都是一样的。请问这里出了些什么问题?
图片生成后没问题。直接经过路径可以访问到。那个FLASH读的图片也没问题。就是读不到上传后的图后。
------解决方案--------------------http://www.cnblogs.com/doll-net/archive/2006/10/31/545384.html
希望能对你有点帮助
------解决方案--------------------http://www.microsoft.com/china/MSDN/library/archives/library/DNAspp/html/colorquant.asp
------解决方案--------------------用用我的函数,希望可以。我的可以打开:
/// <summary>
/// 生成缩略图
/// </summary>
/// <param name= "originalImagePath "> 原始路径 </param>
/// <param name= "thumbnailPath "> 缩略图路径 </param>
/// <param name= "width "> 缩略图的宽度 </param>
/// <param name= "height "> 缩略图的高度 </param>
/// <param name= "mode "> 编辑和修改 </param>
/// <param name= "imgformat "> 缩略图格式 </param>
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode,string imgformat)
{
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
int towidth = widt