سلام به همه
هر چند طبق پیام خصوصی موضوع خدمت این کاربر عرض کردم ولی برای بی نتیجه نموندن این تاپیک، عرض میکنم که ایراد کار از کدنبود و برمیگرده به ویژوال استودیو.
وقتی که عکسی با حجم بزرگ آپلود میکنه سرویس با خطا مواجه میشه که متاسفانه این خطا نا واضح است.
لذا برای رفع این مشکل کافیه که عکس رو کوچیک کنین موقع آپلود!
بنده تابع زیر رو نوشتم و استفاده میکنم. امیدوارم که براتون مفید باشه:
ذیلا من تابعی که خودم ازش استفاده میکنم رو خدمتتون تقدیم میکنم.
public static byte[] CompressImage(byte[] bytes, double maxHeight, double maxWidth)
{
byte[] _result;
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(ConvertBytesToStream(bytes));
System.Windows.Controls.Image image = new System.Windows.Controls.Image();
image.Effect = new DropShadowEffect()
{
BlurRadius = 0,
ShadowDepth = 0
};
image.Source = bitmap;
double scaleX = 1;
double scaleY = 1;
if (bitmap.PixelWidth > maxWidth)
scaleX = maxWidth / bitmap.PixelWidth;
if (bitmap.PixelHeight > maxHeight)
scaleY = maxHeight / bitmap.PixelHeight;
double scale = Math.Min(scaleY, scaleX);
ScaleTransform ss = new ScaleTransform() { ScaleX = scale, ScaleY = scale };
int newWidth = Convert.ToInt32(bitmap.PixelWidth * scale);
int newHeight = Convert.ToInt32(bitmap.PixelHeight * scale);
WriteableBitmap resultBitmap = new WriteableBitmap(newWidth, newHeight);
resultBitmap.Render(image, new ScaleTransform() { ScaleX = scale, ScaleY = scale });
resultBitmap.Invalidate();
_result = ConvertStreamToByte(JpegEncode(resultBitmap, 40));
return _result;
}