PDA

View Full Version : سوال: ايجاد نمودار و ذخيره سازي بصورت فايل jpg



amin joon
سه شنبه 06 اردیبهشت 1390, 23:17 عصر
سلام
من ميخام در بخش كنترل پنل سايت امكاني رو براي ادمين قرار بدم كه با استفاده از اون بتونه يك نمودار ايجاد كنه. براي اين كار ابتدا با استفاده از OWC يك نمودار ايجاد كردم و تصوير آن را در آرايه بايت بصورت زير ذخيره كردم:


byte[] byteArr = (byte[])ChartSpace1.GetPicture("jpg", 400, 450);


حالا ميخام اين تصوير رو در يك فايل jpg ذخيره كنم. براي اين كار از كد زير استفاده كردم:


System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArr);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);

img.Save("chart.jpg");


ولي با پيغام خطاي زير مواجه ميشم:

System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.

به نظر شما مشكل از چيه؟

ممنون ميشم اگه راهنمايي كنيد.

amin joon
چهارشنبه 07 اردیبهشت 1390, 08:38 صبح
کسی نمیدونه این خطا بخاطر چیه؟

زمان ایجاد فایل تصویر این خطا رو میده!!!

amirjalili
چهارشنبه 07 اردیبهشت 1390, 09:11 صبح
سلام..
شما یا permission در فولدر مورد نظر که میخواهید ذخیره کنید ندارید و یا علت دوم این هست که شما دارید تصویری رو ذخیره میکنید که در حال پروسس هست. برای رفع حالت دوم باید از dispose استفاده کنید
مثل کد زیر :

var tmpImage = Image.FromStream(memoryStream);
image = new Bitmap(tmpImage);
tmpImage.Dispose();

mehrdad85
چهارشنبه 07 اردیبهشت 1390, 09:27 صبح
سلام

دوست عزیز اگه مشکلت حل شد کل روند انجام کار را برای من هم توضیح بده
چون من هم میخام چنین امکانی داشته باشم اما در همون مرحله اول موندم

مرسی

amin joon
پنج شنبه 08 اردیبهشت 1390, 00:18 صبح
سلام..
شما یا permission در فولدر مورد نظر که میخواهید ذخیره کنید ندارید و یا علت دوم این هست که شما دارید تصویری رو ذخیره میکنید که در حال پروسس هست. برای رفع حالت دوم باید از dispose استفاده کنید
مثل کد زیر :

var tmpImage = Image.FromStream(memoryStream);
image = new Bitmap(tmpImage);
tmpImage.Dispose();


دقيقا مشكل از پرميژنش بود. ممنون

amin joon
پنج شنبه 08 اردیبهشت 1390, 00:19 صبح
سلام

دوست عزیز اگه مشکلت حل شد کل روند انجام کار را برای من هم توضیح بده
چون من هم میخام چنین امکانی داشته باشم اما در همون مرحله اول موندم

مرسی

يكم هنوز كار داره. ولي به محضي كه كامل شد چشم.