• <menu id="uku4c"><u id="uku4c"></u></menu>
  • <input id="uku4c"><u id="uku4c"></u></input>
  • <menu id="uku4c"></menu><menu id="uku4c"><acronym id="uku4c"></acronym></menu>
  • <menu id="uku4c"><tt id="uku4c"></tt></menu>
  • <menu id="uku4c"></menu>
  • <nav id="uku4c"><tt id="uku4c"></tt></nav>
  • 代码修改图片DPI

    1.使用C# 修改图片DPI

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
    this.textBox1.Text = ((string[])e.Data.GetData(DataFormats.FileDrop.ToString()))[0];
    }

    }

    private void textBox1_DragOver(object sender, DragEventArgs e)
    {
    e.Effect = DragDropEffects.Copy;
    }

    using (Bitmap newImage = new Bitmap(Image.FromFile(this.textBox1.Text)))
                    {
                        newImage.SetResolution(300, 300);
                        newImage.Save("123.jpg",
                            System.Drawing.Imaging.ImageFormat.Jpeg);
                    }

    上面是winform窗口拖拽文件,然后在修改图片DPI。测试成功,可以正常修改。

    2. VC修改图片DPI

    代码原理和C#一致,但是不能修改成功。

    使用GDIPlus

    int GetImageCLSID(const WCHAR *format, CLSID *pCLSID)
    {
    //得到格式为format的图像文件的编码值,访问该格式图像的COM组件的GUID值保存在pCLSID中
    UINT num = 0;
    UINT size = 0;

    ImageCodecInfo* pImageCodecInfo = NULL;
    GetImageEncodersSize(&num, &size);

    if(size == 0)
    return FALSE; // 编码信息不可用

    //分配内存
    pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
    if(pImageCodecInfo == NULL)
    return FALSE; // 分配失败

    //获得系统中可用的编码方式的所有信息
    GetImageEncoders(num, size, pImageCodecInfo);

    //在可用编码信息中查找format格式是否被支持
    for(UINT i = 0; i < num; ++i)
    {
    //MimeType:编码方式的具体描述
    if(wcscmp(pImageCodecInfo[i].MimeType, format) == 0)
    {
    *pCLSID = pImageCodecInfo[i].Clsid;
    free(pImageCodecInfo);
    return TRUE;
    }
    }

    free(pImageCodecInfo);
    return FALSE;
    }

     

    Gdiplus::Bitmap bitPic(m_wcFile,FALSE);
    bitPic.SetResolution(300,300);
    CLSID clImageClsid;
    GetImageCLSID(L"image/jpeg", &clImageClsid);
    bitPic.Save(L"123.jpg",&clImageClsid);

    原理都是一样的,为啥不行,原因待查,记录下

    相关文章
    相关标签/搜索
    天下彩天空彩票与香港小说 灌阳县| 黔南| 简阳市| 独山县| 元朗区| 长沙县| 密山市| 宁河县| 方城县| 长葛市| 台山市| 曲麻莱县| 章丘市| 尤溪县| 依安县| 沁源县| 翁牛特旗| 泰来县| 红原县| 长治市| 万载县| 天祝| 达拉特旗| 财经| 高清| 石泉县| 阿拉善右旗| 上栗县| 泸溪县| 德阳市| 夹江县| 奉新县| 柞水县| 将乐县| 璧山县| 泰宁县| 凯里市| http://fa.hz0j2r4vo.fun http://fa.hz0j0r3vo.fun http://fa.hz0j0r9vo.fun http://fa.hz0j2r4vo.fun http://fa.hz0j0r4vo.fun