本文整理汇总了C#中MatterHackers.Agg.Image.ImageBuffer.pix_ptr方法的典型用法代码示例。如果您正苦于以下问题:C# ImageBuffer.pix_ptr方法的具体用法?C# ImageBuffer.pix_ptr怎么用?C# ImageBuffer.pix_ptr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MatterHackers.Agg.Image.ImageBuffer
的用法示例。
在下文中一共展示了ImageBuffer.pix_ptr方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: stack_blur_bgra32
private void stack_blur_bgra32(ImageBuffer img, int rx, int ry)
{
throw new NotImplementedException();
#if false
//typedef typename Img::color_type color_type;
//typedef typename Img::order_type order_type;
int x, y, xp, yp, i;
int stack_ptr;
int stack_start;
byte* src_pix_ptr;
byte* dst_pix_ptr;
color_type* stack_pix_ptr;
int sum_r;
int sum_g;
int sum_b;
int sum_a;
int sum_in_r;
int sum_in_g;
int sum_in_b;
int sum_in_a;
int sum_out_r;
int sum_out_g;
int sum_out_b;
int sum_out_a;
int w = img.width();
int h = img.height();
int wm = w - 1;
int hm = h - 1;
int div;
int mul_sum;
int shr_sum;
pod_vector<color_type> stack;
if(rx > 0)
{
if(rx > 254) rx = 254;
div = rx * 2 + 1;
mul_sum = stack_blur_tables.g_stack_blur8_mul[rx];
shr_sum = stack_blur_tables.g_stack_blur8_shr[rx];
stack.allocate(div);
for(y = 0; y < h; y++)
{
sum_r =
sum_g =
sum_b =
sum_a =
sum_in_r =
sum_in_g =
sum_in_b =
sum_in_a =
sum_out_r =
sum_out_g =
sum_out_b =
sum_out_a = 0;
src_pix_ptr = img.pix_ptr(0, y);
for(i = 0; i <= rx; i++)
{
stack_pix_ptr = &stack[i];
stack_pix_ptr->r = src_pix_ptr[R];
stack_pix_ptr->g = src_pix_ptr[G];
stack_pix_ptr->b = src_pix_ptr[B];
stack_pix_ptr->a = src_pix_ptr[A];
sum_r += src_pix_ptr[R] * (i + 1);
sum_g += src_pix_ptr[G] * (i + 1);
sum_b += src_pix_ptr[B] * (i + 1);
sum_a += src_pix_ptr[A] * (i + 1);
sum_out_r += src_pix_ptr[R];
sum_out_g += src_pix_ptr[G];
sum_out_b += src_pix_ptr[B];
sum_out_a += src_pix_ptr[A];
}
for(i = 1; i <= rx; i++)
{
if(i <= wm) src_pix_ptr += Img::pix_width;
stack_pix_ptr = &stack[i + rx];
stack_pix_ptr->r = src_pix_ptr[R];
stack_pix_ptr->g = src_pix_ptr[G];
stack_pix_ptr->b = src_pix_ptr[B];
stack_pix_ptr->a = src_pix_ptr[A];
sum_r += src_pix_ptr[R] * (rx + 1 - i);
sum_g += src_pix_ptr[G] * (rx + 1 - i);
sum_b += src_pix_ptr[B] * (rx + 1 - i);
sum_a += src_pix_ptr[A] * (rx + 1 - i);
sum_in_r += src_pix_ptr[R];
sum_in_g += src_pix_ptr[G];
sum_in_b += src_pix_ptr[B];
sum_in_a += src_pix_ptr[A];
}
stack_ptr = rx;
xp = rx;
if(xp > wm) xp = wm;
//.........这里部分代码省略.........
示例2: stack_blur_gray8
private void stack_blur_gray8(ImageBuffer img, int rx, int ry)
{
throw new NotImplementedException();
#if false
int x, y, xp, yp, i;
int stack_ptr;
int stack_start;
byte* src_pix_ptr;
byte* dst_pix_ptr;
int pix;
int stack_pix;
int sum;
int sum_in;
int sum_out;
int w = img.width();
int h = img.height();
int wm = w - 1;
int hm = h - 1;
int div;
int mul_sum;
int shr_sum;
pod_vector<byte> stack;
if(rx > 0)
{
if(rx > 254) rx = 254;
div = rx * 2 + 1;
mul_sum = stack_blur_tables.g_stack_blur8_mul[rx];
shr_sum = stack_blur_tables.g_stack_blur8_shr[rx];
stack.allocate(div);
for(y = 0; y < h; y++)
{
sum = sum_in = sum_out = 0;
src_pix_ptr = img.pix_ptr(0, y);
pix = *src_pix_ptr;
for(i = 0; i <= rx; i++)
{
stack[i] = pix;
sum += pix * (i + 1);
sum_out += pix;
}
for(i = 1; i <= rx; i++)
{
if(i <= wm) src_pix_ptr += Img::pix_step;
pix = *src_pix_ptr;
stack[i + rx] = pix;
sum += pix * (rx + 1 - i);
sum_in += pix;
}
stack_ptr = rx;
xp = rx;
if(xp > wm) xp = wm;
src_pix_ptr = img.pix_ptr(xp, y);
dst_pix_ptr = img.pix_ptr(0, y);
for(x = 0; x < w; x++)
{
*dst_pix_ptr = (sum * mul_sum) >> shr_sum;
dst_pix_ptr += Img::pix_step;
sum -= sum_out;
stack_start = stack_ptr + div - rx;
if(stack_start >= div) stack_start -= div;
sum_out -= stack[stack_start];
if(xp < wm)
{
src_pix_ptr += Img::pix_step;
pix = *src_pix_ptr;
++xp;
}
stack[stack_start] = pix;
sum_in += pix;
sum += sum_in;
++stack_ptr;
if(stack_ptr >= div) stack_ptr = 0;
stack_pix = stack[stack_ptr];
sum_out += stack_pix;
sum_in -= stack_pix;
}
}
}
if(ry > 0)
{
if(ry > 254) ry = 254;
div = ry * 2 + 1;
mul_sum = stack_blur_tables.g_stack_blur8_mul[ry];
shr_sum = stack_blur_tables.g_stack_blur8_shr[ry];
//.........这里部分代码省略.........