seven7777777
سه شنبه 05 خرداد 1388, 17:07 عصر
دوستان سلام
من در برنامم از کد زیر برای تولید عکس 3 در 4 استفاده می کنم :
Image origImage = Image.FromFile(filePath);
Image origThumbnail = new Bitmap(85, 113, origImage.PixelFormat);
Graphics oGraphic = Graphics.FromImage(origThumbnail);
oGraphic.CompositingQuality = CompositingQuality.HighQuality;
oGraphic.SmoothingMode = SmoothingMode.HighQuality;
oGraphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
Rectangle oRectangle = new Rectangle(0, 0, 85, 113);
oGraphic.DrawImage(origImage, oRectangle);
origThumbnail.Save(Application.StartupPath + "/tmpImage.jpg", ImageFormat.Jpeg);
origImage.Dispose();
و از کد زیر برای بدست آوردن byte[] های عکس استفاده می کنم تا بعدا تو دیتابیس ذخیره کنم :
byte[] data = null;
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length;
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
data = br.ReadBytes((int)numBytes);
return data;
و از کد زیر برای واکشی عکس از دیتابیس استفاده میکنم :
Image newImage;
MemoryStream ms = new MemoryStream(picbyte, 0, picbyte.Length);
ms.Write(picbyte, 0, picbyte.Length);
newImage = Image.FromStream(ms, true);
return newImage;
و اما مشکلات :
1. نمی دونم چرا بعضی از عکس ها رو نمی تونه 3 در 4 کنه . فکر کنم مشکل در ساخت Bitmap و با PixelFormat باشه .
2. موقع واکشی از دیتابیس بعضی عکس ها رو که به درستی ذخیره شدن نمی تونه بسازه .
3. من عکس 3 در 4 رو موقت یه جا ذخیره می کنم ولی وقتی می خوام حذفش کنم میگه یه برنامه داره باهاش کار می کنه که همین برنامه خودمه . چکار کنم که از دست برنامه خارج بشه ؟
من در برنامم از کد زیر برای تولید عکس 3 در 4 استفاده می کنم :
Image origImage = Image.FromFile(filePath);
Image origThumbnail = new Bitmap(85, 113, origImage.PixelFormat);
Graphics oGraphic = Graphics.FromImage(origThumbnail);
oGraphic.CompositingQuality = CompositingQuality.HighQuality;
oGraphic.SmoothingMode = SmoothingMode.HighQuality;
oGraphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
Rectangle oRectangle = new Rectangle(0, 0, 85, 113);
oGraphic.DrawImage(origImage, oRectangle);
origThumbnail.Save(Application.StartupPath + "/tmpImage.jpg", ImageFormat.Jpeg);
origImage.Dispose();
و از کد زیر برای بدست آوردن byte[] های عکس استفاده می کنم تا بعدا تو دیتابیس ذخیره کنم :
byte[] data = null;
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length;
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
data = br.ReadBytes((int)numBytes);
return data;
و از کد زیر برای واکشی عکس از دیتابیس استفاده میکنم :
Image newImage;
MemoryStream ms = new MemoryStream(picbyte, 0, picbyte.Length);
ms.Write(picbyte, 0, picbyte.Length);
newImage = Image.FromStream(ms, true);
return newImage;
و اما مشکلات :
1. نمی دونم چرا بعضی از عکس ها رو نمی تونه 3 در 4 کنه . فکر کنم مشکل در ساخت Bitmap و با PixelFormat باشه .
2. موقع واکشی از دیتابیس بعضی عکس ها رو که به درستی ذخیره شدن نمی تونه بسازه .
3. من عکس 3 در 4 رو موقت یه جا ذخیره می کنم ولی وقتی می خوام حذفش کنم میگه یه برنامه داره باهاش کار می کنه که همین برنامه خودمه . چکار کنم که از دست برنامه خارج بشه ؟