PDA

View Full Version : سوال: تغییر سایز عکسه آپلود شده *F1*



malloc
دوشنبه 06 آذر 1391, 14:50 عصر
سلام به همگی

دوستان من یه قطعه کدی رو نیاز دارم هرکس میتونه کمکم کنه.
میخوام که مثلا عکس زیر رو :
95618
به یکی از دو حالت زیر در بیارم (یعنی یجوری سایز عکس رو بزگ کنم حالا یا با استرچ کردن عکس یا با ایجاد فضای خالی دوره عکس)
تصویر 1 :
95621
تصویر 2 :
95622
فقط دقت کنید تصویر دومی فضای خالی داره ها

اگه جواب بدید ممنون میشم:متفکر:

dabirsiaghi
دوشنبه 06 آذر 1391, 15:39 عصر
ببینید به کارتون میاد
فقط یه سوال شما میخواهید عکس رو ذخیره کنید یا میخواهید فقط ران تایم نمایش دهید و ذخیره نشود

malloc
دوشنبه 06 آذر 1391, 16:30 عصر
ببینید به کارتون میاد
فقط یه سوال شما میخواهید عکس رو ذخیره کنید یا میخواهید فقط ران تایم نمایش دهید و ذخیره نشود

دادشی من میخوام کاربر عکسشو با هر سایزی که دوست داره آپلود کنه اما من یه کادره 960*350 دارم و میخوام عکسشو بعد از آپلود به سایز 960*350 تبدیل کنم و ذخیره کنم و تو گالری تصاویر بهش نشون بدم

dabirsiaghi
دوشنبه 06 آذر 1391, 18:02 عصر
دادشی من میخوام کاربر عکسشو با هر سایزی که دوست داره آپلود کنه اما من یه کادره 960*350 دارم و میخوام عکسشو بعد از آپلود به سایز 960*350 تبدیل کنم و ذخیره کنم و تو گالری تصاویر بهش نشون بدم
داداشی بفرما:چشمک:


<div>
<div>
upload :
<asp:FileUpload ID="fileUploadMain" runat="server" />
<asp:Button Text="Save" runat="server" ID="btnSave" OnClick="btnSave_Click" />
<br />
<div id="divImage">
<asp:Image runat="server" ID="imgGallery" />
</div>
</div> </div>



<style>
#divImage
{
width:150px;
height: 100px;
text-align: center;
border: 6px outset #FF0000;
}
</style>





protected void btnSave_Click(object sender, EventArgs e)
{
fileUploadMain.SaveAs(Server.MapPath("~/image/"+fileUploadMain.PostedFile.FileName));
ResizeImageFreeSize(
Server.MapPath("~/image/" + fileUploadMain.PostedFile.FileName),
Server.MapPath("~/newimage/" + fileUploadMain.PostedFile.FileName),
150,
100,
"jpg");
imgGallery.ImageUrl = "~/newimage/" + fileUploadMain.PostedFile.FileName;
}
public static void ResizeImageFreeSize(string OriginalFile, string NewFile, int MinWidth, int MinHeight, string FileExtension)
{
var NewHeight = MinHeight;
var NewWidth = MinWidth;
var OriginalImage = System.Drawing.Image.FromFile(OriginalFile);

if (OriginalImage.Width < MinWidth || OriginalImage.Height < MinHeight)
throw new Exception(String.Format("Invalid Image Dimensions, please upload an image with minmum dimensions of {0}x{1}px", MinWidth.ToString(), MinHeight.ToString()));

// If the image dimensions are the same then make the new dimensions the largest of the two mins.
if (OriginalImage.Height == OriginalImage.Width)
NewWidth = NewHeight = (MinWidth > MinHeight) ? MinWidth : MinHeight;
else
{
if (MinWidth > MinHeight)
NewHeight = (int)(OriginalImage.Height * ((float)MinWidth / (float)OriginalImage.Width));
else
NewWidth = (int)(OriginalImage.Width * ((float)MinHeight / (float)OriginalImage.Height));
}

// Just resample the Original Image into a new Bitmap
var ResizedBitmap = new System.Drawing.Bitmap(OriginalImage, NewWidth, NewHeight);

// Saves the new bitmap in the same format as it's source image
FileExtension = FileExtension.ToLower().Replace(".", "");

ImageFormat Format = null;
switch (FileExtension)
{
case "jpg":
Format = ImageFormat.Jpeg;
break;
case "gif":
Format = ImageFormat.Gif;
break;
case "png":
Format = ImageFormat.Png;
break;
default:
Format = ImageFormat.Png;
break;
}

ResizedBitmap.Save(NewFile, Format);


// Clear handle to original file so that we can overwrite it if necessary
OriginalImage.Dispose();
ResizedBitmap.Dispose();
}





95642

malloc
دوشنبه 06 آذر 1391, 21:13 عصر
دادشی دستت درد نکنه خیلی خوب بود (هرچند با اعمال تغییراتی به اونی که خودم میخواستم رسوندمش اما عالی بود دمت گرم)
حالا نکته اینجاست که این تابع عکسهایی که بزرگتر از کادر تعیین شده هستن رو به سایز دلخواه ما تبدیل میکنه اما من تو پست اول هم اشاره کردم من یه تابع میخوام که با عکس کوچیکتر از کادر یکی از اون دوتا کاری که گفتم (تو پست اول) و بکنه.

اگه متوجه نشدید بیشتر توضیح بدم.
لطفا کمکم کنید نیاز دارم بهش