PDA

View Full Version : مبتدی: عکس رنگی به سیاه سفید



lechking18
یک شنبه 13 اسفند 1391, 11:37 صبح
سلام
بچه ها همون جور که تو عنوان هست یه برنامه دست ساز!!! تو #C میخواستم که عکس رنگی رو سیاه سفید بکند هرچچ قدر برنامه ساده تر و مبتدی تر باشه بهتره ممنون میشم اگه کمکم کنید

مهرداد صفا
یک شنبه 13 اسفند 1391, 11:44 صبح
با سلام.
تاپیک زیر:
کمک در مورد تعقیر رنگ image به سیاه و سفید - Windows Internet Explorer (http://barnamenevis.org/showthread.php?355051-کمک-در-مورد-تعقیر-رنگ-image-به-سیاه-و-سفید)

j_naroogha@yahoo.com
یک شنبه 13 اسفند 1391, 14:15 عصر
Bitmap c = new Bitmap("fromFile");
Bitmap d;
int x, y;

// Loop through the images pixels to reset color.
for (x = 0; x < c.Width; x++)
{
for (y = 0; y < c.Height; y++)
{
Color pixelColor = c.GetPixel(x, y);
Color newColor = Color.FromArgb(pixelColor.R, 0, 0);
c.SetPixel(x, y, newColor); // Now greyscale
}
}
d = c; // d is grayscale version of c

j_naroogha@yahoo.com
یک شنبه 13 اسفند 1391, 14:19 عصر
public static Bitmap MakeGrayscale3(Bitmap original)
{
//create a blank bitmap the same size as original
Bitmap newBitmap = new Bitmap(original.Width, original.Height);

//get a graphics object from the new image
Graphics g = Graphics.FromImage(newBitmap);

//create the grayscale ColorMatrix
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {.3f, .3f, .3f, 0, 0},
new float[] {.59f, .59f, .59f, 0, 0},
new float[] {.11f, .11f, .11f, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});

//create some image attributes
ImageAttributes attributes = new ImageAttributes();

//set the color matrix attribute
attributes.SetColorMatrix(colorMatrix);

//draw the original image on the new image
//using the grayscale color matrix
g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height),
0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);

//dispose the Graphics object
g.Dispose();
return newBitmap;
}

j_naroogha@yahoo.com
یک شنبه 13 اسفند 1391, 14:22 عصر
Bitmap d = new Bitmap(c.Width, c.Height);

for (int i = 0; i < c.Width; i++)
{
for (int x = 0; x < c.Height; x++)
{
Color oc = c.GetPixel(i, x);
int grayScale = (int)((oc.R * 0.3) + (oc.G * 0.59) + (oc.B * 0.11));
Color nc = Color.FromArgb(oc.A, grayScale, grayScale, grayScale);
d.SetPixel(i, x, nc);
}
}