14. december 2005 - 13:47
Der er
11 kommentarer og 1 løsning
Udtage sub-image / del af et Bitmap
Hvad jeg vil: Jeg vil vha. at Bitmap gerne vide hvordan jeg tage et sub-image af dette, dvs. tager noget af billedet og ender med at have det som et nyt Bitmap. På forhånd tak.
Annonceindlæg tema
14. december 2005 - 14:06
#1
du kan bruge noget i denne stil: Bitmap b = new Bitmap("c:\\winxp.gif"); Bitmap btest = new Bitmap("c:\\winxp.gif"); btest = b.Clone(new Rectangle(0, 0, 30, 40), PixelFormat.DontCare); btest.Save("c:\\winxplille.gif"); i new Rectangle(0, 0, 30, 40) defineres start på x og y og højde og bredde på det nye billede.
14. december 2005 - 14:48
#2
Hmmm har lige prøvet den af: private Bitmap GetSquare(Bitmap b) { int w = b.Width; int h = b.Height; if (w < h) { return b.Clone(new Rectangle(0, (h - w) / 2, w, w), PixelFormat.DontCare); } else { return b.Clone(new Rectangle(0, (w - h) / 2, h, h), PixelFormat.DontCare); } } Men jeg får en Syste.OutOfMemoryException. Billedet jeg prøver at klone er 360x260 og fylder 11kb som jpg på disken. Nogen ide om hvorfor den siger der mangler memory?
14. december 2005 - 15:11
#3
fejlen kommer fra dit rectangel fordi du forsøger at skære et billede ud af et område der ikke eksisterer.
14. december 2005 - 15:12
#4
hvor meget af billedet er det du vil have vist ?
14. december 2005 - 15:14
#5
Jeg vil have den størst mulig kvadrat af et raktangulært billede.
14. december 2005 - 15:14
#6
mulige*, rektangulært* :)
14. december 2005 - 15:16
#7
skal det starte i toppen af venstre hjørne ?
14. december 2005 - 15:21
#8
prøv med private Bitmap GetSquare(Bitmap b) { int w = b.Width; int h = b.Height; if (w < h) { return b.Clone(new Rectangle(0, 0, w, w), b.PixelFormat); } else { return b.Clone(new Rectangle(0, 0, h, h), b.PixelFormat); } }
14. december 2005 - 15:23
#9
problemet er at jeg gerne vil have kvadratet placeret på midten af billedet.
14. december 2005 - 15:29
#10
prøv med private Bitmap GetSquare(Bitmap b) { int w = b.Width; int h = b.Height; if (w < h) { return b.Clone(new Rectangle(0, (w - h) / 2, w, w), b.PixelFormat); } else { return b.Clone(new Rectangle((w - h) / 2, 0, h, h), b.PixelFormat); } }
14. december 2005 - 15:34
#11
ja :) Tak for det. Kan godt se den dumme fejl nu. Læg et svar og få point.
14. december 2005 - 15:36
#12
np :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.