22. marts 2005 - 19:05
Der er
4 kommentarer og
1 løsning
FileUpload JPEG og GIF
Jeg vil gerne uploade billeder til min hjemmeside. Til dette kan man bruge FileUpload kontrollen. Kan man gøre sådan at ens fil dialog kun viser JPEG og GIF og kan man teste om det faktisk er JPEG og GIF samt kontrolere størrelse i bytes og pixels. Hvis størrelsen er for stor skal man så kunne scalere dem ned.
ved godt det en hel bunke spørgsmål så pumper lidt ekstra points i.
På forhånd tak.
Segato
23. marts 2005 - 15:16
#2
hej sneppet og tak for dit svar. Meget sjovt du lige smed den artikel den jeg selv har brugt til det system jeg har lige nu. Den svarer bare ikke på to af tingene. Hvis man prøver at uploade et billede som er for stort skal den fysisk ændre billedet størrelse. Ikke når den bliver vist men når den bliver uploadet. Også den ting med i Fildialogen der bliver startet op. kan man få fat i den og sætte at det kun er gifs og jpeg som med en alm fildialog?
Har whidbey måske noget endnu smartere end den der FileUpload ting. Tænkte på hvis man nu fik fat i et Image object så ville man have en masse kontrol over dte billede man nu uploadede i stedet for at kigger i header chunks osv.
23. marts 2005 - 16:17
#3
hej igen segato :o)
du kan ændre størrelsen på billeder sådan her :
// til ændring af størrelsen på en billede
private static byte[] ResizeImage(byte[] image, int width, int height)
{
System.Drawing.Bitmap bmpOut = null;
Bitmap bmp = new Bitmap(new MemoryStream(image));
bmpOut = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White, 0, 0, width, height);
g.DrawImage(bmp, 0, 0, width, height);
bmp.Dispose();
MemoryStream ms = new MemoryStream();
bmpOut.Save(ms, ImageFormat.Jpeg);
byte[] result = ms.ToArray();
ms.Close();
return result;
}
(her bare som eksempler en handler af den knap du klikker på som sørger for at du uploader billedet... og det forudsættes at du har en <intput type="file" runat="server" id="File1"> på din side).
void Button1_Click(object sender, EventArgs e)
{
int width = 100;
int height = 100;
System.Drawing.Bitmap bmpOut = null;
Bitmap bmp = new Bitmap(this.File1.PostedFile.InputStream);
bmpOut = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White, 0, 0, width, height);
g.DrawImage(bmp, 0, 0, width, height);
bmp.Dispose();
MemoryStream ms = new MemoryStream();
bmpOut.Save(@"c:\testfiles\image.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] result = ms.ToArray();
ms.Close();
}
jeg tror ikke du kan styre valgmulighederne i den fildialogboks der popper op, og whidbey har godt nok en FileUpload kontrol, men det er ikke noget der giver dig det store i denne forbindelse tror jeg.
meen.... du kan jo så selv lave et image udfra den fil der bliver uploadet :
System.Drawing.Image img = System.Drawing.Image.FromStream(this.File1.PostedFile.InputStream);
Håber det kunne hjælpe lidt.
mvh