// 矩形・グレースケール
public void DrawRect(int x, int y, int w, int h, byte v)
{
for (int i = 0; i < w; i++)
{
SetPixel(x + i, y, v);
SetPixel(x + i, y + h - 1, v);
}
for (int j = 0; j < h; j++)
{
SetPixel(x, y + j, v);
SetPixel(x + w - 1, y + j, v);
}
}
// 矩形・カラー
public void DrawRect(int x, int y, int w, int h, byte r, byte g, byte b)
{
for (int i = 0; i < w; i++)
{
SetPixel(x + i, y, r, g, b);
SetPixel(x + i, y + h - 1, r, g, b);
}
for (int j = 0; j < h; j++)
{
SetPixel(x, y + j, r, g, b);
SetPixel(x + w - 1, y + j, r, g, b);
}
}
// 矩形塗りつぶし・グレースケール
public void FillRect(int x, int y, int w, int h, byte v)
{
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
SetPixel(x + i, y + j, v);
}
}
}
// 矩形塗りつぶし・カラー
public void FillRect(int x, int y, int w, int h, byte r, byte g, byte b)
{
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
SetPixel(x + i, y + j, r, g, b);
}
}
}
利用例
MainWindow.xaml.cs
using System.Windows;
using Maywork.WPF.Helpers;
namespace WpfSample01;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var buff = ImageBufferHelper.Create(256, 256, 1); // カラーの場合、第3引数を1→3
buff.FillRect(32, 32, 192, 192, 255);
buff.DrawRect(64, 64, 128, 128, 0);
Image1.Source = buff.ToBitmapSource();
}
}
MainWindow.xaml
<Grid>
<Image x:Name="Image1" />
</Grid>
実行例
グレースケール

カラー


コメント