Gå til innhold

Anbefalte innlegg

Hei,

 

Emnetittel forteller vell det meste.

Jeg holder på å prøve å lage et bildegalleri.

Har derfor lyst å hente ut exif dataene og vise disse i tillegg til bilde (Vett ikke alle bildene inneholder exif data9

Målet er å hente ut Eksponering, Blits avfyrt, ISO, Kamera Merke, Kamera Modell og et par andre. Disse vil jeg lagre som variabler og igjen lagre i en database.

 

jeg har søkt på forumet og funnet noe info om dette i PHP men ikke i C#. Har også søkt på google, men finner bare noe sykt lange script som jeg ikke helt klarer å sette meg inni.

 

Noen her så kunne hjelpt meg litt på vei ?

 

Takker for hjelpen

 

Mvh

Ppeewee

Endret av ppeewee
Lenke til kommentar
Videoannonse
Annonse
http://www.vbaccelerator.com/home/net/code...les/article.asp

 

Jeg tror denne siden har all informasjonen du trenger for å hente ut EXIF data i C#. Jeg ville i hvert fall studert koden her for å komme i gang.

 

Hmm, har sett gjennom programmet å prøvd å debugge meg gjennom og. Jeg kan ver med på litt, men forstår fortsatt ikke hvordan jeg har muligheten til å lage dette litt mindre og gjøre slik at jeg kan hente ut de spesifikke exif datene jeg vil ha og lagre de som variabler.

 

Klarer ikke å få oversikten over hvordan dette gjøres i det programmet.

 

Mulig i gi litt mer hint og tips?

Lenke til kommentar

 

Masse tekst og god forklaring på hva exif er. men må si jeg klarer ikke å skrive koden som skal til for å hente ut exif data ved hjelp av noen av de to sidene :( er dessverre ikke så god i programmering, så trenger nok litt starthjelp før jeg forstår det.

 

Takk for hjelpen uansett.

 

Har du prøvd google? Finnes jo massevis av ferdig kode for dette.

 

Link 1 Første resultatside inneholder minst 3 ferdige løsninger.

 

Link 2

 

 

Og som vanlig er det Link2 som er den du kanskje trenger mest....

Endret av jorn79
Lenke til kommentar

 

Masse tekst og god forklaring på hva exif er. men må si jeg klarer ikke å skrive koden som skal til for å hente ut exif data ved hjelp av noen av de to sidene :( er dessverre ikke så god i programmering, så trenger nok litt starthjelp før jeg forstår det.

 

Takk for hjelpen uansett.

 

Har du prøvd google? Finnes jo massevis av ferdig kode for dette.

 

Link 1 Første resultatside inneholder minst 3 ferdige løsninger.

 

Link 2

 

 

Og som vanlig er det Link2 som er den du kanskje trenger mest....

 

Jepp link nr 2 var veldig nyttig ;)

 

Har nok googlet og lest litt. er akkaurt derfor jeg har komt til forumet. jeg har googlet lest og testet, men ikke fått det til. Derfor gikk jeg hit for å se om noen kanskje hadde et lite tips som kunne hjelpe meg på vei.

 

De kodesnuttene som ligger ute er etter min mening ganske kompliserte og i tillegg skrevet inn i et program som er lagt for å kjøpre på pc`en. Jeg trenger litt hjelp til den biten hvor exif datene faktisk blir hentet ut av bilde. men finner ikke en måte å gjøre dette enkelt på. har funnet php script som gjør dette utrolig enkelt, men kan se ut som c# og asp.net ikke har lyst å være så snille med oss brukere.

 

men beklager viss dette var et domt spørsmål da.

Lenke til kommentar

 

takker for svar, skal ta å lese gjennom det å se hva jeg forstår.

Men i mellomtiden har jeg et annet spørsmål

 

Leser litt her nå

http://msdn2.microsoft.com/en-us/library/x...dz7(vs.71).aspx

 

Virker som en grei måte å lese ut data på, men for en feilmelding.

 

har i koden min skrevet

 

string path = BildeTeksboks.Text;
	FileStream oStream = new FileStream(path, FileMode.Open, FileAccess.Read);
	Image image = new Bitmap(oStream);

 

Men på selve Image image = new Bitmap(oStream); så får jeg følgende feilmelding,

Image is an ambovious referene between "System.Drawing.Image" and System.web.UI.Webconrols.Image

Viss jeg prøver å ta vekk System.Drawing så funker plutseling ikke Bitmap lengre men tar jeg vekk System.web.UI så fungerer ikke Detailsviewen min. så hvordan kan jeg få det vekk ?

 

<edit 1>

Jeg klarer nå å få hente ut manufacturer ved hjelp av ascii encoding. (fikk fortsatt ikke løst den feilmeldingen over, men tok bare vekk Detailsviewen min foreløpig) De funker jo for index 0 og 1. Men jeg er veldig i tvil på hvordan jeg skal få til å få frem skikkelige verdier for F-number, eksponering ISO som hører til en av disse gruppene.

Numeric value Description

1 A Byte

2 An array of Byte objects encoded as ASCII

3 A 16-bit integer

4 A 32-bit integer

5 An array of two Byte objects that represent a rational number

6 Not used

7 Undefined

8 Not used

9 SLong

10 SRational

 

Noen tips til dette?

 

PS: Beklager mange skrivefeil

Endret av ppeewee
Lenke til kommentar

 

takker for svar, skal ta å lese gjennom det å se hva jeg forstår.

Men i mellomtiden har jeg et annet spørsmål

 

Leser litt her nå

http://msdn2.microsoft.com/en-us/library/x...dz7(vs.71).aspx

 

Virker som en grei måte å lese ut data på, men for en feilmelding.

 

har i koden min skrevet

 

string path = BildeTeksboks.Text;
	FileStream oStream = new FileStream(path, FileMode.Open, FileAccess.Read);
	Image image = new Bitmap(oStream);

 

Men på selve Image image = new Bitmap(oStream); så får jeg følgende feilmelding,

Image is an ambovious referene between "System.Drawing.Image" and System.web.UI.Webconrols.Image

Viss jeg prøver å ta vekk System.Drawing så funker plutseling ikke Bitmap lengre men tar jeg vekk System.web.UI så fungerer ikke Detailsviewen min. så hvordan kan jeg få det vekk ?

 

 

Jeg klarer nå å få hente ut manufacturer ved hjelp av ascii encoding. De funker jo for index 0 og 1. Men jeg er veldig i tvil på hvordan jeg skal få til å få frem skikkelige verdier for F-number, eksponering ISO som hører til en av disse gruppene.

Numeric value Description

1 A Byte

2 An array of Byte objects encoded as ASCII

3 A 16-bit integer

4 A 32-bit integer

5 An array of two Byte objects that represent a rational number

6 Not used

7 Undefined

8 Not used

9 SLong

10 SRational

 

Noen tips til dette?

Lenke til kommentar
Men på selve Image image = new Bitmap(oStream); så får jeg følgende feilmelding,

Image is an ambovious referene between "System.Drawing.Image" and System.web.UI.Webconrols.Image

Viss jeg prøver å ta vekk System.Drawing så funker plutseling ikke Bitmap lengre men tar jeg vekk System.web.UI så fungerer ikke Detailsviewen min. så hvordan kan jeg få det vekk ?

skriv

System.Drawing.Bitmap image = System.Drawing.Bitmap.FromFile(BildeTekstbox.Text);

 

Grunnen til at den klager, er at den ikke vet om du vil bruke System.Web.UI.Image eller System.Drawing.Image, og da må du skrive hele navnet istedet for bare Image f.eks.

Lenke til kommentar

Her kommer enda mer spørsmål, men føler jeg nermer meg målet nå :) Så hadde vert utrolig fint viss noen gadd svare meg på dette.

 

		string Model = "";
	string Make = "";
	string Software = "";
	string Dato = "";


	//Lager et bildeobjekt
	string path = BildeTeksboks.Text;
	FileStream oStream = new FileStream(path, FileMode.Open, FileAccess.Read);
	Image image = new Bitmap(oStream);

	//Får PropertyItem av bildet
	PropertyItem[] propItems = image.PropertyItems; 

	//For hver PropertyItem i bilde hent ut ID, Type, og Len
	int count = 0;
	System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
	foreach (PropertyItem propItem in propItems)
	{
		string PropertyItem = Convert.ToString(count);
		string ID = propItem.Id.ToString("X");
		string Type = propItem.Type.ToString();
		string Len = propItem.Len.ToString() + " bytes";

		switch (ID)
		{
			case "110":
				Model = encoding.GetString(propItems[count].Value);
				break;
			case "10F":
				Make = encoding.GetString(propItems[count].Value);
				break;
			case "131":
				Software = encoding.GetString(propItems[count].Value);
				break;
			case "9003":
			  Dato = encoding.GetString(propItems[count].Value);
				break;
		}

		count++;
	}

 

Har et par problemer med denne koden.

string ID = propItem.Id.ToString("X"); - Forstår ikke i heile tatt hvorfor jeg må ha "X" inni der, men har jeg ikke det så blir ID`en feil. Har jeg "X" med så finner den nr`ene du ser på Denne siden

 

 

 

Derfor har jeg lagt case at viss ID er lik en av de jeg har i casen så skal den gjør ascii strengen om å legge den inn i variabler. Dette er enkelt å greit nok på de lette ascii streng id`ene. Men jeg har ikke peiling på hvordan jeg f.eks gjør det med

ExposureTime som er unsigned rational

0x829a	  ExposureTime	  unsigned rational	  1	  Exposure time (reciprocal of shutter speed). Unit is second.

eller f.eks Iso som er unsigned short.

0x8827	  ISOSpeedRatings	  unsigned short	  2	  CCD sensitivity equivalent to Ag-Hr film speedrate.

eller siste ShutterSpeedValue som er signed rational

0x9201	  ShutterSpeedValue	  signed rational	  1	  Shutter speed. To convert this value to ordinary 'Shutter Speed'; calculate this value's power of 2, then reciprocal. For example, if value is '4', shutter speed is 1/(2^4)=1/16 second.

 

Greit nok, på siste så står det hva jeg skal gjøre for å få ned på normal form. Men hva betyr Signed Rational, unsigned short, unsigned rational, og hvordan søren gjør jeg det om til string eller int?

Endret av ppeewee
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...