Giriş
Şu satırı dahil ederiz.
Constructor
Boş bitmap şöyle tanımlanır.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Image sınıfı ile de Bitmap okunabilir. Ben bu yöntemi pek sevmiyorum.
Açıklaması şöyle
Şöyle yaparız.
Bitmaple işimiz bitince Dispose edilmelidir.
Şöyle yaparız.
Bir Color nesnesi döner. Açıklaması şöyle
Şu satırı dahil ederiz.
using System.Drawing;
Image Sınfından kalıtır.Constructor
Boş bitmap şöyle tanımlanır.
Bitmap bitmap
= new Bitmap(1,1);
Constructor - width + heightŞöyle yaparız.
Rectangle facerectangle = ...;
Bitmap target = new Bitmap(facerectangle.Width, facerectangle.Height);
Şöyle yaparız.Bitmap memoryImage = new Bitmap(1366, 768);
Constructor - width + height + pixel formatŞöyle yaparız.
int width = ...;
int height = ...;
Bitmap bmp = new Bitmap (width, height,PixelFormat.Format24bppRgb);
Constructor - From StreamŞöyle yaparız.
byte[] img = ...;
MemoryStream ms = new MemoryStream();
ms.Write(img, 0, img.Length);
Bitmap bitmap
= new Bitmap(ms);
Constructor - From BitmapŞöyle yaparız.
var bitmap1 = new Bitmap(...);
Bitmap bitmap2
= new System.Drawing.Bitmap(bitmap1);
Constructor - From FileImage sınıfı ile de Bitmap okunabilir. Ben bu yöntemi pek sevmiyorum.
Bitmap source = Image.FromFile("/my/path/to/myimage.png") as Bitmap;
Constructor - From PathAçıklaması şöyle
Clone metoduBitmap(String): Initializes a new instance of the Bitmap class from the specified file.
Şöyle yaparız.
Bitmap bitmap = ...;
Bitmap copy = bitmap.Clone();
Dispose metoduBitmaple işimiz bitince Dispose edilmelidir.
Bitmap bitmap =...;...
bitmap.Dispose();
FromStream metoduŞöyle yaparız.
Stream stream = new MemoryStream(Data); // Data is byte array
Image img = Image.FromStream(stream);
GetPixel metoduBir Color nesnesi döner. Açıklaması şöyle
Bitmap data is stored in an unmanaged GDI object. Every time you call GetPixel the system needs to access this object. You can speed it up by using LockBits to directly access the raw image data.
Örnek
Şöyle yaparız.
Bitmap'in sadece veri kısmına erişmemizi sağlar. Bitmap'in header kısmını atlar. LockBits ile kilitlenen BitmapData sınıfı daha sonra iş bitince unlock edilmeli.
Bitmap dosyaya şöyle kaydedilir.
Bitmap bir stream'e de kaydedilebilir.
Bir pixel'e renk şöyle atanır.
Şöyle yaparız.
Bitmap nesnesinin boyutlarına şöyle erişilir.
bitmap.GetPixel(i, j);
Örnek
Şöyle yaparız
double GetImageValue(Bitmap Image)
{
double ImageValue = 0;
for (int X = 0; X < Image.Width; X++)
{
for (int Y = 0; Y < Image.Height; Y++)
{
Color CurrentPixel = Image.GetPixel(X, Y);
ImageValue += CurrentPixel.A + CurrentPixel.B + CurrentPixel.G + CurrentPixel.R;
}
}
return ImageValue;
}
LockBits metodu
Bitmap bitmap = ...;
BitmapData bmData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
unsafe
{...}
bmp.UnlockBits(bmData);
Bu örnekte ReadOnly olarak kilitleniyor ve farklı bir Bitmap'in format kullanılıyor.BitmapData bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
int numbytes = bmpdata.Stride * bitmap.Height;
byte[] bytedata = new byte[numbytes];
IntPtr ptr = bmpdata.Scan0;
Marshal.Copy(ptr, bytedata, 0, numbytes);
bitmap.UnlockBits(bmpdata);
Save metodu - DosyaBitmap dosyaya şöyle kaydedilir.
Bitmap bitmap =...;
bitmap.Save(@"C:\Test\screenshot.png");
bitmap.Dispose();
Dosyaya farklı bir formatta şöyle kaydedilir.bitmap.Save(@"C:\Coke\res1.png", System.Drawing.Imaging.ImageFormat.Png);
Save metodu - StreamBitmap bir stream'e de kaydedilebilir.
bitMap.Save(OutputStream, ImageFormat.Jpeg);
JPEG olarak şöyle kaydederiz.byte[] imagebuffer;
using (Image img = Image.FromFile(@"c:\temp_10\sample.gif"))
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, ImageFormat.Jpeg);
imagebuffer = ms.ToArray();
}
//write to fs (if you need...)
File.WriteAllBytes(@"c:\temp_10\sample.jpg", imagebuffer);
Png olarak şöyle kaydederiz.Image img = ...;
byte[] byteArray = ;
using(MemoryStream stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
stream.Close();
byteArray = stream.ToArray();
}
Gif olarak şöyle kaydederiz.img.Save(stream, System.Drawing.Imaging.ImageFormat.Gif);
SetPixel metoduBir pixel'e renk şöyle atanır.
int red, int green, int blue;
bitmap.SetPixel(x, y, Color.FromArgb(red, green, blue));
SetResolution metoduŞöyle yaparız.
Bitmap imgPhoto = ...;
int width = ...;
int height = ...;
Bitmap bmPhoto = new Bitmap(width, height, PixelFormat.Format24bppRgb);
bmPhoto.SetResolution(imgPhoto.HorizontalResolution,
imgPhoto.VerticalResolution);
Width AlanıBitmap nesnesinin boyutlarına şöyle erişilir.
bitmap.Width, bitmap
.Height
Hiç yorum yok:
Yorum Gönder