none
Eigenschaften einer JPG-Datei ermitteln

    Question

  • Hallo,

    in meinem Programm kann ich Bilder zum Hochladen für einen Webshop auswählen. Ich möchte aber Auflösung und Seitenverhältnis der Bilder einschränken und den User ggf. warnen. Im Windows-Explorer sind die Daten per Rechtsclick und "Eigenschaften" einsehbar, aber wie komme ich da per Programm dran? Gibt's noch andere Möglichkeiten als mich mit dem JPEG-Dateiformat zu beschäftigen und dort die Daten auszulesen?

    Gruß,

    Winfried

    Tuesday, March 06, 2012 5:46 PM

Answers

  • VFP gdiplusx herunterladen

    Do system.app
    loImg = _Screen.System.Drawing.Bitmap.FromFile(GetFile("JPG"),.T.)
    ?loImg.Size.Width,loImg.Size.Height

    * Für ein simples Resize
    loBmp = _Screen.System.Drawing.Bitmap.New(640,480,0,PixelFormat24bppRGB)
    loBmp.SetResolution(loImg.HorizontalResolution,loImg.VerticalResolution)

    loGraphics = _Screen.System.Drawing.Graphics.FromImage(loBmp)
    loGraphics.DrawImage(loImg,0,0,loBmp.Size.Width,loBmp.Size.Height,0,0,loImg.Size.Width,loImg.Size.Height,UnitPixel)

    * loBmp enthält nun das skalierte Bild.

    ODER

    Img = CreateObject("WIA.ImageFile")
    Img.LoadFile (GetFile("JPG"))
    ? Img.Width, Img.Height

    ODER

    Suche nach EXIF, jhead.exe ist z.B. ein Commandlinetool, was Du nutzen könntest. Das würde dann das Bild nicht laden, um nur die Auflösungsinformation zu kriegen. 

    GdiplusX nutze ich selber für eine kleine Bild-Batchverarbeitung, um Bilder auf webgeeignete Größe zu schrumpfen, daher da auch gleich der passende Code zum Resize.

    Tschüß, Olaf.

    • Proposed as answer by Tom Borgmann Wednesday, March 07, 2012 6:52 AM
    • Marked as answer by WiWo Wednesday, March 07, 2012 8:21 AM
    Tuesday, March 06, 2012 7:46 PM

All replies

  • VFP gdiplusx herunterladen

    Do system.app
    loImg = _Screen.System.Drawing.Bitmap.FromFile(GetFile("JPG"),.T.)
    ?loImg.Size.Width,loImg.Size.Height

    * Für ein simples Resize
    loBmp = _Screen.System.Drawing.Bitmap.New(640,480,0,PixelFormat24bppRGB)
    loBmp.SetResolution(loImg.HorizontalResolution,loImg.VerticalResolution)

    loGraphics = _Screen.System.Drawing.Graphics.FromImage(loBmp)
    loGraphics.DrawImage(loImg,0,0,loBmp.Size.Width,loBmp.Size.Height,0,0,loImg.Size.Width,loImg.Size.Height,UnitPixel)

    * loBmp enthält nun das skalierte Bild.

    ODER

    Img = CreateObject("WIA.ImageFile")
    Img.LoadFile (GetFile("JPG"))
    ? Img.Width, Img.Height

    ODER

    Suche nach EXIF, jhead.exe ist z.B. ein Commandlinetool, was Du nutzen könntest. Das würde dann das Bild nicht laden, um nur die Auflösungsinformation zu kriegen. 

    GdiplusX nutze ich selber für eine kleine Bild-Batchverarbeitung, um Bilder auf webgeeignete Größe zu schrumpfen, daher da auch gleich der passende Code zum Resize.

    Tschüß, Olaf.

    • Proposed as answer by Tom Borgmann Wednesday, March 07, 2012 6:52 AM
    • Marked as answer by WiWo Wednesday, March 07, 2012 8:21 AM
    Tuesday, March 06, 2012 7:46 PM
  • Danke Olaf,

    das werd ich mir mal ansehen.

    Den Usern die Möglichkeit zu geben, sogar gleich zu verkleinern, ist vielleicht auch eine schöne Option.

    Vorallem werd ich mir das wohl für mich mal zurechtbauen; erst vorgestern lieferte mir meine Frau 75 Bilder von der Digitalkamera, jedes knapp 3 MByte, die allesamt nach China gemailt werden sollten.

    Gruß,

    Winfried

    Wednesday, March 07, 2012 8:00 AM
  • Hallo WiWo,
    wenn's nur darum geht, die Abmessungen eines Bildes auszulesen, ist der schnellste Weg so:

    oBild = CREATEOBJECT("IMAGE")
    oBild.Picture = GETPICT()
    ? oBild.Height
    ? oBild.Width


    wOOdy
    Microsoft Visual FoxPro and Servoy Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile, my LinkedIn profile, my Facebook page!

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    Friday, March 09, 2012 4:10 AM
  • MyFress, auf die Idee einfach mal ein Imageobject unsichtbar und ganz ohne auf einer Form zu erstellen, muß man auch erst mal kommen, aber geht natürlich auch.

    Tschüß, Olaf.

    Friday, March 09, 2012 8:02 PM
  • >> MyFress <<

    Was für ein schönes NeuDeutsch! Muss ich mir merken! :)


    wOOdy
    Microsoft Visual FoxPro and Servoy Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile, my LinkedIn profile, my Facebook page!

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    Monday, March 12, 2012 8:15 AM