由于程序需要一个缩略图功能,所以在网上找了一段代码,代码可以正生成缩略图
可是查看生成的缩略图DPI是96(photoshop里叫点数,好像也叫分辨率) 网页显示推荐的72,想询问一下各位高手这个属性如何修改看清楚,是修改点数,不是尺寸,请懂得原理的高手解答,小弟拜谢

解决方案 »

  1.   

    System.Drawing.Image img = System.Image.FromFile(fileName);
    //获取此图形的水平分辨率(即水平dpi)
    float dpiX = img.HorizontalResolution;
    //垂直分辨率
    float dpiY = img.VerticalResolution;/// <summary>
    /// 获取一个图片按等比例缩小后的大小。
    /// </summary>
    /// <param name="maxWidth">需要缩小到的宽度</param>
    /// <param name="maxHeight">需要缩小到的高度</param>
    /// <param name="imageOriginalWidth">图片的原始宽度</param>
    /// <param name="imageOriginalHeight">图片的原始高度</param>
    /// <returns>返回图片按等比例缩小后的实际大小</returns>
    public static Size GetNewSize(int maxWidth, int maxHeight, int imageOriginalWidth, int imageOriginalHeight)
    {
        double w = 0.0;
        double h = 0.0;
        double sw = Convert.ToDouble(imageOriginalWidth);
        double sh = Convert.ToDouble(imageOriginalHeight);
        double mw = Convert.ToDouble(maxWidth);
        double mh = Convert.ToDouble(maxHeight);    if (sw < mw && sh < mh)
        {
            w = sw;
            h = sh;
        }
        else if ((sw / sh) > (mw / mh))
        {
            w = maxWidth;
            h = (w * sh) / sw;
        }
        else
        {
            h = maxHeight;
            w = (h * sw) / sh;
        }    return new Size(Convert.ToInt32(w), Convert.ToInt32(h));
    }控制int maxWidth, int maxHeight,这2个参数