コンパイルできないとは、具体的にはどのような状況でしょうか?
CImageクラスはVS2010でも利用可能です。コンパイルできないとすればそれは何か他に原因があるので、まずはそれを解消すべきでしょう。
念のため、たまたまVS2010をインストールした環境が手元に残っていたのでリンク先のコード(私が書いたものですが)を試してみましたが、そのままコピペしてビルドできましたし、正しく実行できていました(保存した画像ファイルで確認)。
GDI+で書いたサンプル
c++
1#include <windows.h>
2#include <gdiplus.h>
3#pragma comment (lib,"gdiplus.lib")
4using namespace Gdiplus;
5
6// クリップボードからビットマップを取得する関数
7void SampleClipboard()
8{
9 if(!::IsClipboardFormatAvailable(CF_BITMAP))
10 {
11 return;
12 }
13
14 if(!::OpenClipboard(NULL))
15 {
16 return;
17 }
18
19 HBITMAP hBitmap = (HBITMAP)::GetClipboardData(CF_BITMAP);
20 if(hBitmap == NULL)
21 {
22 ::CloseClipboard();
23 return;
24 }
25
26 Bitmap* pClip = Bitmap::FromHBITMAP(hBitmap, NULL);
27 Bitmap* pBitmap = pClip->Clone(0, 0, pClip->GetWidth(), pClip->GetHeight(), PixelFormat32bppRGB);
28 delete pClip;
29
30 ::CloseClipboard();
31
32 for(UINT y = 0; y < pBitmap->GetHeight(); y++)
33 {
34 for(UINT x = 0; x < pBitmap->GetWidth(); x++)
35 {
36 Color color;
37 pBitmap->GetPixel(x, y, &color);
38 BYTE r = color.GetR();
39 BYTE g = color.GetG();
40 BYTE b = color.GetB();
41
42 // 何かの処理
43 }
44 }
45
46 // 保存はCImageほど簡単ではない
47 UINT numEncoders;
48 UINT size;
49 GetImageEncodersSize(&numEncoders, &size);
50 ImageCodecInfo* pCodecs = (ImageCodecInfo*)malloc(size);
51 GetImageEncoders(numEncoders, size, pCodecs);
52 ImageCodecInfo* pPngCodec = NULL;
53 for(UINT i = 0; i < numEncoders; i++)
54 {
55 ImageCodecInfo* pCodec = &pCodecs[i];
56 if(wcscmp(pCodec->MimeType, L"image/png") == 0)
57 {
58 pPngCodec = pCodec;
59 break;
60 }
61 }
62 if(pPngCodec != NULL)
63 {
64 pBitmap->Save(L"sample.png", &pPngCodec->Clsid);
65 }
66 free(pCodecs);
67 delete pBitmap;
68}
69
70
71int main()
72{
73 // GDI+の開始
74 GdiplusStartupInput startupInput;
75 ULONG_PTR token;
76 GdiplusStartup(&token, &startupInput, NULL);
77
78 SampleClipboard();
79
80 // GDI+の終了
81 GdiplusShutdown(token);
82 return 0;
83}
GDI+を使う場合は、上記main関数のような開始処理と終了処理が必要です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/11 00:27
2018/06/11 03:42
2018/06/11 04:52
2018/06/14 08:31
2018/11/28 09:33