デスクトップの壁紙を変えるプログラムを書こうとおもったのですが、windows7では画像ファイルをbmpに
しなくても、成功したのですが、XPにした途端にエラーがでました。
systemparameterinfoに、デスクトップのフルパスを入れていたのですが、XPでもbmpファイルなら成功します。
なので、jpgのファイルのフルパスを指定して、そのファイルをメモリにコピーして、それを変換して、systemparameterinfoを使って、画像表示をしたいのですが、調べたっ結果DLLファイルや、jpeg-8dを使ってみようと思ったのですが、どのように使えばいいのかわからず、DLLを使う方法では、http://officetanaka.net/other/extra/tips03.htm
DLLをどうしていいのかわからずに、フォルダにいれてみたりしたのですが、わかりませんでした。
jpeg-8dはライブラリーファイル?なのでDxlibを入れたときと同じ用にして使ってみましたが、エラーが100個以上でて、、、あきらめました。
もっと簡単な方法はないのでしょうか?ちなみにCimageは、使えない環境でやっています。
VC++の2008でやっています。XPです。
ご回答よろしくお願いします。
C++でjpgファイルをbmpファイルに変換する方法
Re: C++でjpgファイルをbmpファイルに変換する方法
GDI+を使ってJPEG形式の画像ファイルを読み込んで、BMP形式の画像ファイルを書き出したら良いのでは?
標準装備のAPIを使うので難しくないと思いますが。
読み込みは『GDI+ JPEG ファイル読み』、書き出しは『BMP ファイル書き』といったワードで検索するとサンプルコードが見付かりますよ。
標準装備のAPIを使うので難しくないと思いますが。
読み込みは『GDI+ JPEG ファイル読み』、書き出しは『BMP ファイル書き』といったワードで検索するとサンプルコードが見付かりますよ。
-
おならちゃん。
Re: C++でjpgファイルをbmpファイルに変換する方法
http://lamoo.s53.xrea.com/develop/gdipl ... ml#install
ここのサイトを参考にしているのですが、開始、終了処理が出来ませんでした。
導入の場所では「こっそりGDI+のライブラリ(.lib)とヘッダ」こっちをデスクトップにおいてvisual c++でインクルードファイルとライブラリーファイルを
プロジェクトおよびソリューションのVC++ディレクトリにパスを通せば、導入されていますよね?
かなりの数のエラーがでました。
こんな感じです。
___________________________________________________
>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(6) : error C2146: 構文エラー : ';' が、識別子 'GdiplusStartup' の前に必要です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(6) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(8) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(8) : error C2143: 構文エラー : ',' が '*' の前にありません。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(9) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(68) : error C2871: 'Gdiplus' : この名前を指定された名前空間は存在しません。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(75) : error C2065: 'GdiplusStartupInput' : 定義されていない識別子です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(75) : error C2146: 構文エラー : ';' が、識別子 'gdiplusStartupInput' の前に必要です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(75) : error C2065: 'gdiplusStartupInput' : 定義されていない識別子です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(77) : error C2065: 'gdiplusStartupInput' : 定義されていない識別子です。
ここのサイトを参考にしているのですが、開始、終了処理が出来ませんでした。
導入の場所では「こっそりGDI+のライブラリ(.lib)とヘッダ」こっちをデスクトップにおいてvisual c++でインクルードファイルとライブラリーファイルを
プロジェクトおよびソリューションのVC++ディレクトリにパスを通せば、導入されていますよね?
かなりの数のエラーがでました。
こんな感じです。
___________________________________________________
>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(6) : error C2146: 構文エラー : ';' が、識別子 'GdiplusStartup' の前に必要です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(6) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(8) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(8) : error C2143: 構文エラー : ',' が '*' の前にありません。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(9) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(68) : error C2871: 'Gdiplus' : この名前を指定された名前空間は存在しません。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(75) : error C2065: 'GdiplusStartupInput' : 定義されていない識別子です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(75) : error C2146: 構文エラー : ';' が、識別子 'gdiplusStartupInput' の前に必要です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(75) : error C2065: 'gdiplusStartupInput' : 定義されていない識別子です。
1>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(77) : error C2065: 'gdiplusStartupInput' : 定義されていない識別子です。
-
Ryo
Re: C++でjpgファイルをbmpファイルに変換する方法
まず
>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(6) : error C2146: 構文エラー : ';' が、識別子 'GdiplusStartup' の前に必要です。
このエラーだけでも治してみましょう。
一か所でもエラーがあると、その後のエラーを誘発することがよくあります
(定義にミスってればそれを使用する場所でもエラーがでる という風に)
>c:\documents and settings\pp\my documents\visual studio 2008\projects\test\test\test.cpp(6) : error C2146: 構文エラー : ';' が、識別子 'GdiplusStartup' の前に必要です。
このエラーだけでも治してみましょう。
一か所でもエラーがあると、その後のエラーを誘発することがよくあります
(定義にミスってればそれを使用する場所でもエラーがでる という風に)
Re: C++でjpgファイルをbmpファイルに変換する方法
リンク先のページにも書いてありますが、Visual Studio.NET(2002)以降は標準装備です。おならちゃん。 さんが書きました:導入の場所では「こっそりGDI+のライブラリ(.lib)とヘッダ」こっちをデスクトップにおいてvisual c++でインクルードファイルとライブラリーファイルを
プロジェクトおよびソリューションのVC++ディレクトリにパスを通せば、導入されていますよね?
ランタイムDLLに関してもXP以降は標準装備です。
なので何かを追加する必要はありません。
読み取りにくい文章ですが、エラーメッセージからすると『開始・終了処理』の章の最後にあるソースコードでエラーが出たということですね。
gdiplus.hをインクルードすれば良いと思いますが、このソースコードを見た時点でそれが足りないのが分からないとなるとこの先も苦労する気がします。