Avatar billede stephanryer Nybegynder
26. december 2010 - 19:57 Der er 7 kommentarer og
2 løsninger

Load og tegning af billede skallerer billedet automatisk

Jeg har oprettet en ny windows form.
I den har jeg tilføjet en handler på eventet Paint

Min paint-metode ser således ud:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    Bitmap bitmap = new Bitmap("C:/test.jpg");
    e.Graphics.DrawImage(bitmap,0,0);
}

Når jeg starter mit program, ser jeg rigtigt nok billedet tegnet i formen. Men det tegnede billede er større end de 20x20 som billedet er.

Er der andre der kan bekræfte denne adfærd? Og er der nogen, der har en forklaring?

På forhånd tak.
Avatar billede bvli Praktikant
26. december 2010 - 20:23 #1
Hvordan hvis du tegner en rectangle på 20x20px? Vil den så være mindre end billedet? Den overload af DrawImage du bruger, skulle gerne tegne billedet i dets fysiske størrelse.

Hvis du override'r OnPaint(PaintEventArgs) vil din form performe bedre, da du så kan vælge at lade være med at kalde base.OnPaint(..) - hvis altså du alligevel sørger for at tegne hele indholdet af din form.
Avatar billede stephanryer Nybegynder
26. december 2010 - 20:26 #2
Hej

Tak for svaret. Hvis jeg tegner en 20x20 rektabngel, så er den mindre end billedet. Og billedet er 20x20 ved indlæsning.

Der må derfor ske noget skallering - men jeg kan ikke gennemskue hvornår.
Avatar billede stephanryer Nybegynder
26. december 2010 - 20:30 #3
private void Form1_Paint(object sender, PaintEventArgs e)
{
    Bitmap bitmap = new Bitmap(rootImageFolder + "Rock.jpg");
    e.Graphics.DrawImage(bitmap, 0, 0);
        e.Graphics.DrawImage(bitmap, 20, 0, 20, 20);
    e.Graphics.DrawRectangle(Pens.Blue, 0,20,20,20);
}

Har prøvet ovenstående.

Første billede er større end 20x20, andet billede og rektanglen er begge 20x20.
Avatar billede bvli Praktikant
26. december 2010 - 20:53 #4
Du har jo en .Size på din bitmap instance. Hvad siger den?

Og det er fuldstændigt åndssvagt af mig at spørge om du nu også er fuldstændig sikker på, at din bitmap er 20x20 ikk'?
Avatar billede stephanryer Nybegynder
26. december 2010 - 23:52 #5
hehe jo, den er 20x20. Når jeg hover musen over billedet i windows explorer, siger den 20x20 og min bitmap instance har Width på 20 og Height på 20.
Avatar billede aaberg Nybegynder
27. december 2010 - 08:14 #6
Det er sandsynligvis fordi billedets opløsning (dpi) ikke er den samme som .net bruger. Hvis jeg ikke husker helt forkert, bruger .net 96dpi som standard.
Avatar billede stephanryer Nybegynder
27. december 2010 - 11:40 #7
Ohhhhh. Tusind tak!

Jeg kan se, at den her side forklarer, hvordan jeg undgår dette i Photoshop: http://www.ehow.com/how_5019096_change-dpi-photoshop-cs.html

Læg et svar.

bvli du får15 af pointene som tak for hjælpen :) Resten går til aaberg_cc.

Tak for hjælpen begge to :)
Avatar billede aaberg Nybegynder
27. december 2010 - 11:48 #8
Godt du fant ud af det :)
Avatar billede bvli Praktikant
27. december 2010 - 12:58 #9
Super :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester