[VB.NET] image bewerking

Pagina: 1
Acties:

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Ik heb het volgende probleem, wat ik na uitgebreid zoeken op google, msdn library, GoT niet heb op kunnen lossen.

Ik heb een DIB BMP bestand (bijvoorbeeld een plaatje van 1024x768). Die wil ik inlezen, daarna wil ik daar een rechthoek uithalen(oftewel, een deel van het plaatje, startend op een bepaald punt, tot een bepaaldpunt). Dan wil ik dat converteren naar JPG en opslaan in een database (Microsoft SQL server & een MDB file) met behulp van een sql query.

Daarna moet ik het natuurlijk ook weer op kunnen halen, en de volgende dingen mee doen: in een picturebox zetten of uitprinten.

Mijn probleem is dat ik de system.drawing namespace niet aankan aangezien ik zit te werken in een class library (DLL). Ook weet ik niet hoe ik van een image object naar een database kan transferen.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Scorpion1984 schreef op zaterdag 15 januari 2005 @ 13:34:
Mijn probleem is dat ik de system.drawing namespace niet aankan aangezien ik zit te werken in een class library (DLL). Ook weet ik niet hoe ik van een image object naar een database kan transferen.
Waarom zou je System.Drawing niet kunnen gebruiken in je DLL? :?

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 08-05 18:30
misschien heb je hier wat aan => http://www.eecs.wsu.edu/paint.net/

is open source dus kan je kijken hoe hun 'images' bewerken

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

gideon82 schreef op zaterdag 15 januari 2005 @ 13:38:
misschien heb je hier wat aan => http://www.eecs.wsu.edu/paint.net/

is open source dus kan je kijken hoe hun 'images' bewerken
Het is prima op te lossen met de standaart .NET classes.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Het probleem is met die functies dat je een form gebruik en die heb je in een dll niet ;)

  • foske
  • Registratie: Juli 2001
  • Laatst online: 17-05 08:35
Overigs wordt het opslaan van plaatjes in een database eigenlijk altijd afgeraden. Er zijn wel situaties waarbij het wenselijk is, maar 9 van de 10 x is het niet nodig.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Het is in dit geval nodig, aangezien het op een remote bedrijven-server komt te staan, dus zal het wel in de microsoft sql server in een database moeten komen staan.

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Scorpion1984 schreef op zaterdag 15 januari 2005 @ 14:03:
Het probleem is met die functies dat je een form gebruik en die heb je in een dll niet ;)
Ok dat was een vergissing, kan de system.drawing namespace wel gebruiken, maar het lukt niet echt om te resizen.

Alles wat ik kan vinden is crop naar een form, en niet naar een image.

[ Voor 11% gewijzigd door Scorpion1984 op 15-01-2005 18:31 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Wat lukt er niet, want met de standaart classes kan het gewoon hoor :?

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Visual Basic .NET:
1
2
3
Dim tmp2 As String = "C:\Documents and Settings\root\Desktop\temp.bmp"
Dim tmp4 As Image
tmp4 = New Bitmap(tmp2)

Dat heb ik.
Dan lukt het onmogelijk om een deel van het plaatje op te halen en in een image object te zetten. (bijvoorbeeld een deel wat begint op de coordinaten 10;20 en eindigt op 40;70)

Ik heb al vanalles geprobeerd met de graphics class, maar die kan je niet opslaan in een image object. En natuurlijk vanalles geprobeerd met de bitmap en de image class.

[ Voor 34% gewijzigd door Scorpion1984 op 15-01-2005 21:00 ]


  • Twilight Burn
  • Registratie: Juni 2000
  • Laatst online: 29-04 11:55
Als je nou een nieuw image maakt met de correcte afmetingen (in dit geval 30 breed, 50 hoog) en dan het eerste plaatje op het tweede plaatje verschoven tekend (coordinaten -10, -20)?

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Twilight Burn schreef op zondag 16 januari 2005 @ 14:44:
Als je nou een nieuw image maakt met de correcte afmetingen (in dit geval 30 breed, 50 hoog) en dan het eerste plaatje op het tweede plaatje verschoven tekend (coordinaten -10, -20)?
En hoe wil ik dat doen? Uitgebreid gezocht naar dat soort dingen.

  • Twilight Burn
  • Registratie: Juni 2000
  • Laatst online: 29-04 11:55
Iets als:
Visual Basic .NET:
1
2
3
uit = new Bitmap(30,50)
g = graphics.FromImage(uit)
g.DrawImageUnscaled(Image.FromFile("bestand.bmp"),-10,-20)

edit:
Toevoeging:
Voor alle teken- en plaatjes functies heb je trouwens geen form nodig, wel moet je zorgen dat de System.Drawing is gereferenced!

[ Voor 38% gewijzigd door Twilight Burn op 16-01-2005 16:03 ]


  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 17-05 11:19
Mmh, weird, zoiets had ik ook geprobeerd, maar toen paste hij "uit" niet aan. Nu wel, of ik heb toen ergens een klein foutje gemaakt. Maar ik zou niet weten waar.

[ Voor 15% gewijzigd door Scorpion1984 op 16-01-2005 16:11 ]

Pagina: 1