画像を保存すると,アルファチャンネルが追加されて透明になってしまうところができてしまいます。
ポーカーで使うコインみたいのをつくろうとしていたら,周りの六個の四角が透過されてしまいました。
http://or2.mobi/index.php?mode=image&file=152646.png
画像自体はビットマップで保存して後でpng形式にすればいいのですが,,,
なぜ,一部分だけ透明になってしまうのですか。
以下,ソースコードです。
#include <cmath>
#include "dxlib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
if (DxLib_Init() == -1 || ProcessMessage() == -1)
goto __END;
const auto x = 101;
const auto y = 101;
const auto r1 = 100;
const auto r2 = 70;
const auto en = 1;
const auto nu = 2;
const auto be = 16 * Pi * nu / 180;
DrawCircleAA(x, y, r1 * en, 100, GetColor(0xff, 0xff, 0xff), 1);
for (auto i = 7 * Pi * nu / 180; i < 2 * Pi; i += 30 * Pi * nu / 180)
{
auto cos_i = cos(i);
auto cos_be = cos(i + be);
auto sin_i = sin(i);
auto sin_be = sin(i + be);
for (auto j = 0.; j < be; j += .01)
{
DrawTriangleAA
(
r2 * cos_i * en + x, r2 * sin_i * en + y,
r1 * cos_i * en + x, r1 * sin_i * en + y,
r1 * cos(i + j) * en + x, r1 * sin(i + j) * en + y,
GetColor(0xcc, 0xcc, 0xcc), false
);
DrawTriangleAA
(
r1 * cos_i * en + x, r1 * sin_i * en + y,
r1 * cos_be * en + x, r1 * sin_be * en + y,
r2 * cos(i + j) * en + x, r2 * sin(i + j) * en + y,
GetColor(0xcc, 0xcc, 0xcc), false
);
}
}
DrawCircleAA(x, y, r2 * en, 100, GetColor(0xff, 0xff, 0xff), true);
DrawCircleAA(x, y, 0.8 * r2 * en, 100, GetColor(0xcc, 0xcc, 0xcc), true);
DrawCircleAA(x, y, r1 * en, 100, GetColor(0x00, 0x00, 0x00), false);
DrawCircleAA(x, y, r1 * en + 1, 100, GetColor(0x00, 0x00, 0x00), false);
DrawCircleAA(x, y, r2 * en, 100, GetColor(0x00, 0x00, 0x00), false);
DrawCircleAA(x, y, r2 * en - 1, 100, GetColor(0x00, 0x00, 0x00), false);
SaveDrawScreenToPNG(0, y - 101, 202 * 4, y + 101, "save.png");
WaitKey();
__END:
DxLib_End();
return 0;
}