05. april 2006 - 17:10
Der er
9 kommentarer og 2 løsninger
crop image asp.net 1.1
Er det muligt for mig at sige at jeg vil ha et billede klippet ud af et større billede? Hvis jeg ville ha retuneret en del af billedet fra position x,y som er h højt og w bredt, kan det så lade sig gøre? Jeg har prøvet lidt af hvert, men ind til videre får jeg kun sorte og hvide kasser rundt omkring...
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
05. april 2006 - 17:32
#1
du kan gøre det på denne måde: System.Drawing.Image i= System.Drawing.Image.FromFile("dinfil"); System.Drawing.Bitmap b = new System.Drawing.Bitmap(i.Width, i.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Bitmap copy = b.Clone(new Rectangle(0, 0, 10, 10), System.Drawing.Imaging.PixelFormat.Format24bppRgb); ;
05. april 2006 - 17:45
#2
Hmm...så må det være mig der gør noget forkert...hvis jeg bare vil ha billedet udskrevet til siden har jeg før brugt (til thumb) copy.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); men så f¨r jeg bare en lille sort box?
05. april 2006 - 17:55
#3
hmm lyder mærkeligt. jeg fandt denne funktion: puplic Image Crop(Image p) { Int32 x; Int32 y; Bitmap b = new Bitmap(p); Color c = new Color(); Int32 intLeft; Int32 intRight; Int32 intBottom; Int32 intTop; y = 0; while (!(y == b.Height)) { x = 0; while (!(x == b.Width)) { c = b.GetPixel(x, y); if (c.R != 0 & c.G != 0 & c.B != 0) { if (c.R < 250 | c.G < 250 | c.B < 250) { if (intLeft <= 0 & intLeft < x) { intLeft = x; } if (intTop <= 0 & intTop < y) { intTop = y; } if (intRight <= b.Width & intRight < x) { intRight = x; } if (intBottom <= b.Height & intBottom < y) { intBottom = y; } } } x += 1; } y += 1; } Int32 intNewWidth = (intRight); Int32 intNewHeight = (intBottom); Bitmap imgCropped = new Bitmap(intNewWidth + 10, intNewHeight + 10); Graphics objGraphics = Graphics.FromImage(imgCropped); objGraphics.Clear(System.Drawing.Color.White); Int32 intStartTop = 5; Int32 intStartLeft = 5; objGraphics.DrawImage(b, intStartLeft, intStartTop); b.Dispose(); objGraphics.Dispose(); return imgCropped; }
05. april 2006 - 17:56
#4
ved ikke om den kan gøre det.
05. april 2006 - 17:58
#5
Ja...har også kikket på den (det ligner ihvertfald den på eksperten) Men jeg må lave noget forkert når jeg gemmer den til siden. Kan selvfølgeligt prøve lidt frem og tilbage...troede det var måden jeg klippede den på den var gal med...
06. april 2006 - 19:38
#6
Men ingen ide om hvorfor jeg kun får sorte kasser? (de er på størrelse med rectangle der bliver oprettet)
06. april 2006 - 21:42
#7
Hmm...ok, nu virker det hvis jeg vil klippe fra venstre hjørne...hvad hvis man gerne vil ha noget inde midt i?
06. april 2006 - 22:11
#8
Ok...det her virker, men billedet der bliver gemt er ca 10 gange større end det originale. Hvordan undgår man det? String Path = Server.MapPath("ba12790.jpg"); System.Drawing.Image imgFullSize = System.Drawing.Image.FromFile(Path); double ImgHeight = imgFullSize.Height; double ImgWidth = imgFullSize.Width; int iWidth = int.Parse(Math.Ceiling(ImgWidth).ToString()); int iHeight = int.Parse(Math.Ceiling(ImgHeight).ToString()); Bitmap bmNew = new Bitmap(rx, ry); Graphics g = Graphics.FromImage(bmNew); g.Clear(System.Drawing.Color.Aquamarine); g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.AssumeLinear; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default; g.DrawImage(imgFullSize,new Rectangle(0,0,rx,ry),offx,offy,rx,ry, System.Drawing.GraphicsUnit.Pixel); g.Dispose(); bmNew.Save(Server.MapPath(".")+"\\Folder\\TMP.jpg");
07. april 2006 - 08:19
#9
altså bruger 10 gange mere plads på harddisken ?
17. april 2006 - 02:00
#10
mja...det var vist noget med billedet, for den gør det ikke mere...Skal vi være sociale og dele :)
17. april 2006 - 08:08
#11
gerne :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.