C++使用GDI+實現圖片格式轉換
實現程式碼:
#include <iostream>
#include <Windows.h>
#include <gdiplus.h>
#pragma comment(lib,"Gdiplus.lib")
using namespace Gdiplus;
/*
通過字串獲得對應的CLSID
format:影象格式,如:image/bmp
pClsid:存放對應的CLSID
成功返回對應的編碼器位置,失敗返回-1.
*/
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid);
int main(void)
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
// GDI+的任何操作之前應該先初始化
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
CLSID encoderClsid;
Status stat;
// 載入圖片
Image* image = new Image(L"C:\\Users\\Administrator\\Desktop\\2.jpg");
// 獲取要轉換格式的CLSID
GetEncoderClsid(L"image/bmp", &encoderClsid);
// 根據CLSID儲存為對應格式的圖片
stat = image->Save(L"C:\\Users\\Administrator\\Desktop\\Bird.bmp", &encoderClsid, NULL);
if (stat == Ok)
printf("Bird.png was saved successfully\n");
else
printf("Failure: stat = %d\n", stat);
delete image;
// 關閉GDI+
GdiplusShutdown(gdiplusToken);
// 轉換後就可以設定桌布啦
SystemParametersInfo(20, 0, "C:\\Users\\Administrator\\Desktop\\Bird.bmp", 1);
// 設定完成後可以刪除它,加個延時,不然可能還沒設定上就被刪除了
Sleep(100);
DeleteFile("C:\\Users\\Administrator\\Desktop\\Bird.bmp");
return 0;
}
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
UINT num = 0; // 影象編碼器數量
UINT size = 0; // 影象編碼器陣列大小
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size); // 獲取編碼器數量
if (size == 0)
return -1;
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if (pImageCodecInfo == NULL)
return -1;
GetImageEncoders(num, size, pImageCodecInfo); // 獲取本機支援的編碼器
for (UINT j = 0; j < num; ++j)
{
if (wcscmp(pImageCodecInfo[j].MimeType, format) == 0) // 找到該格式就將對應的CLSID給*pClsid
{
*pClsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j;
}
}
free(pImageCodecInfo);
return -1;
}
相關推薦
C++使用GDI+實現圖片格式轉換
主要是我在設定桌布時遇到的個小問題,因為設定桌布只能是bmp格式的圖片,不可能我喜歡的桌布就都是bmp格式的,就想怎麼轉換一下圖片的格式,於是就在百度搜怎麼弄,搜到了可行方法,卻沒有實現程式碼,有些看起
GDI+實現圖片格式轉換(bmp、jpeg、gif、tiff、png) .
引言:通過GDI+我們可以很方便的對bmp、jpeg、gif、tiff、png格式的圖片進行轉換。 步驟: 1) 通過GdiplusStartup初始化GDI+,以便後續的GDI+函式可以成功呼叫。 2) 通過GetImageEncodersSize獲取GD
Matlab實現圖片格式轉換 pgm轉jpg
% 本示例程式將 H:\me的論文\其他\另一個數據\lfwcrop_grey\lfwcrop_grey\faces\目錄下面所有的 pgm 圖片轉換為 jpg 圖片 % 如果僅對一張 pgm 圖片作格式轉換,請直接看核心程式碼部分。 function [ ] = pgm2jpg(
Matlab實現圖片格式轉換 pgm轉jpg等
在Matlab下,轉換圖片格式相對比較容易,本文以 pgm 轉 jpg 為例,貼出示例程式: % 本示例程式將 C:\Users\kitty\test\目錄下面所有的 pgm 圖片轉換為 jpg 圖片 % 如果僅對一張 pgm 圖片作格式轉換,請直接看 核心程式
請問C#壓縮常見圖片格式(JPG)質量/解析度該如何實現
如何識別驗證碼VS2010開發C#工程怎麼用命令列分析計算程式碼度量值如何識別驗證碼VS2010開發C#工程怎麼用命令列分析計算程式碼度量值 C#可以寫伺服器端嗎C#類的解釋C#可以寫伺服器端嗎C#類的解釋 winformc#程式碼如何實現圖片只一個角變形通過asp.netC
利用GDI+圖片格式轉換(例如BMP轉PNG)
主要是先探測目標圖片的編碼器 然後在把資料以相應的編碼儲存起來。 如下為 BMP轉PNG的 做法. #include <windows.h> #include <gdiplus.h> #include <stdio.h> using nam
Python實現批量圖片格式轉換
深度學習過程中總是繞不開資料集的製作,有時候實際圖片格式或大小可能與需要關心的圖片資訊不一致,那麼我們只能手動做好資料預處理,再進行training dataset.現在將介紹最簡單的格式轉換問題。可以支援批量圖片任意格式轉換。 直接上程式碼:# 將jpg格式轉位
python實現pdf格式轉換圖片格式
使用python程式碼實現pdf轉換圖片格式 核心程式碼: import io from wand.image import Image from wand.color import Color from PyPDF2 import PdfFileReader, PdfF
java實現擷取PDF指定頁並進行圖片格式轉換
1、引入依賴 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.16&l
jpg圖片格式轉換dwg怎麽操作
這款軟件小編我為什麽說比較好呢?是因為這款軟件不僅能夠轉換文件格式而且還能夠對文件進行編輯,功能強大且能快速轉換,下面就以jpg圖片格式轉換dwg怎麽操作為例來給大家介紹一下使用這款軟件的操作步驟。 CAD編輯器下載http://www.downxia.com/d
java之圖片格式轉換
圖片格式轉換package fileTest; import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arra
怎樣將普通的圖片格式轉換成PDF格式
電腦桌 mar 行操作 .com 需要 完成 分享 合並 word 大多時候我們處理格式間的轉換的對象多數為一些文件,如word、Excel、WPS等幾種辦公中常所使用到的。試過如何將圖片轉換成PDF格式了嗎?相信大部分的人都不知道如何操作,不妨試一下這種方法,小編將方法分
V4L2影象採集+圖片格式轉換(YUYV、RGB、JPEG)
本篇轉自博友https://blog.csdn.net/xuyangwyw/article/details/40476653文章,感謝分享。 廢話不多說,直接開始流程。 1、驅動支援 在那位法國牙醫的無私奉獻下,Linux核心幾乎支援所
怎樣將圖片格式轉換成PDF格式?
電腦中儲存的圖片轉換成PDF格式該如何進行操作呢?下面就這個問題小編就將自己所知道的轉換方法告訴大家!1、首先可以將轉換成PDF格式的圖片儲存在一份新建的新資料夾中。2、接下來就可以藉助電腦端的PDF轉換軟體進行操作了。不過前提是電腦中要有PDF轉換器,沒有的話大家自行去下載。這個就不用小編教大家了吧!3、電
ASP NET2 0圖片格式轉換【月兒原創】
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
WPF 圖片格式轉換
//FileStream imageStreamSource = File.OpenRead(srcPath); FileStrea
RGBA 圖片格式轉換 RGB 無損
拿到的圖片是webp格式的,然後系統無法處理。只能使用google code的dwebp工具,把圖片轉成png或者jpg的。 這一步是ok了。 但是轉成的圖片是RGBA的,系統只能處理RGB。。。 報了下面的錯: java.lang.ArrayIndexOutOfBoundsEx
PyTorch使用seq2seq+attention實現時間格式轉換
pytorch實現seq2seq+attention轉換日期 使用keras實現加入注意力機制的seq2seq比較麻煩,所以這裡我嘗試使用機器翻譯的seq2seq+attention模型實現人造日期對標準日期格式的轉換。 所copy的程式碼來自practical-pytorch
spring mvc 圖片上傳+圖片格式轉換+圖片壓縮
利用springmvc進行圖片處理,本例中用到了imageio和谷歌壓縮工具類Thumbnails,下面是程式碼僅供參考,如有不足之可在下方留言或者自行更正 @RequestMapping("/uploadFile") @ResponseBody public Map<Str
常用的Emgu CV程式碼(主要有圖片格式轉換,圖片裁剪,圖片翻轉,圖片旋轉和圖片平移等功能)
轉載自部落格 using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; namespace ZNLGIS { public class Im