JPG Auflösung automatisch herabsetzen

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

JPG Auflösung automatisch herabsetzen

Beitragvon UliTs » Di, 06. Dez 2016 9:37

Hallo allerseits,

auf Lieferscheine sollen von den Artikeln erscheinen. Und zwar nicht einfach ein Foto je Artikel hinterlegt werden sondern für jeden Lieferschein ein neues Foto gemacht werden.
Wie mache ich das am geschicktesten?
a) Foto kommt irgendwie als JPG auf den Rechner
b) Foto wird in der Lieferscheintabelle gespeichert

Nun möchte ich nicht gerade 10MB-Fotos dort speichern. Deshalb die Frage:
wenn der Anwender so ein Foto speichern will: wie kann ich das Foto (automatisch) so bearbeiten, dass der Speicherbedarf drastisch sinkt? z.B. von 8000x6000 auf 400x300 Punkte verkleinern?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2356
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: JPG Auflösung automatisch herabsetzen

Beitragvon brandelh » Di, 06. Dez 2016 10:28

Jimmy hatte mir damals bei meiner Uhr geholfen, da wird ein Bild scaliert GraBitBlt() ist meine ich der Name der Funktion.

Schau mal hier:

:arrow: viewtopic.php?f=16&t=2556
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13264
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: JPG Auflösung automatisch herabsetzen

Beitragvon UliTs » Di, 06. Dez 2016 11:39

Danke. Habe mir auf die Schnelle die Funktion angeschaut.
Ich bin mir aber nicht sicher, ob sie nicht nur zur Auswahl eines Ausschnittes dient.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2356
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: JPG Auflösung automatisch herabsetzen

Beitragvon brandelh » Di, 06. Dez 2016 12:13

Aus dem Gedächtnis meine ich dass Die einen Ausschnitt (oder alles ) in eine neue Größe oder auch verdreht umwandeln kann.
Dann abspeichern. Jimmy hatte auch noch eine Funktion genannt, aber meine Uhr zeigt auch größere Grafiken skaliert an, warum sollte das die nicht auch speichern können.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13264
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: JPG Auflösung automatisch herabsetzen

Beitragvon peternmb » Di, 06. Dez 2016 13:34

So funktioniert es bei mir per Funktion:
Code: Alles auswählen
modJPG("Test_gross.JPG","Test_klein.JPG",100,100)

proc modJPG(orgJPG,neuJPG,breit,hoch)      // = neue Abmessungen
  LOCAL oPSA1 := xbpPresSpace():New():Create(), ;
        oPSA2 := xbpPresSpace():New():Create(), ;
        oBmpA1,oBmpA2, ok:=.F.
  // 
  oBmpA1 := xbpBitmap():New():Create()
  oBmpA1:PresSpace(oPSA1)
  oBmpA1:LoadFile(orgJPG)
  //
  oBmpA2 := xbpBitmap():New():Create()
  oBmpA2:PresSpace(oPSA2)
  oBmpA2:Make(breit,hoch)
  //
  aS1 := {0,0,oBmpA1:xSize,oBmpA1:ySize}
  aS2 := {0,0,oBmpA2:xSize,oBmpA2:ySize}
  GraBitBlt(oBmpA2:PresSpace(),oBmpA1:PresSpace(),aS2,aS1,,GRA_BLT_BBO_IGNORE,Sleep(0.1))
  //
  if oBmpA2:SaveFile(neuJPG,XBPBMP_FORMAT_JPG,0)  //  Bild-Datei schreiben
    ok= .T.
  endif
  //       
  oBmpA1:destroy()
  oBmpA2:destroy()
  //
  oPSA1:destroy()
  oPSA2:destroy()
  //
return
peternmb
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 427
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: JPG Auflösung automatisch herabsetzen

Beitragvon UliTs » Di, 06. Dez 2016 14:47

Hallo PeterNmb,

vielen Dank. Das sieht gut aus!

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2356
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: JPG Auflösung automatisch herabsetzen

Beitragvon brandelh » Di, 06. Dez 2016 15:30

Die Funktion sollte in die Wissensdatenbank :-)

PS: die kratze ich mir auch gleich :-)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13264
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: JPG Auflösung automatisch herabsetzen

Beitragvon AUGE_OHR » Di, 06. Dez 2016 22:48

peternmb hat geschrieben:
Code: Alles auswählen
 GraBitBlt(oBmpA2:PresSpace(),oBmpA1:PresSpace(),aS2,aS1,,GRA_BLT_BBO_IGNORE,Sleep(0.1))
hm ... was soll das SLEEP(0.1) als 7th Parameter in der Function bewirken wenn es nur 6 Parameter gibt ?

die Function von mir heisst übrigens BMP2BMP()
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10141
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: JPG Auflösung automatisch herabsetzen

Beitragvon peternmb » Mi, 07. Dez 2016 11:24

hm ... was soll das SLEEP(0.1) als 7th Parameter in der Function bewirken wenn es nur 6 Parameter gibt ?
die Function von mir heisst übrigens BMP2BMP()

Diese Funktion ist mit Sicherheit hier aus dem Forum, vermutlich von Jimmy.
Ich habe auch die richtige Skalierung für den Beispielcode der Übersichtlichkeit halber weggelassen.
Keine Ahnung mit dem letzten Parameter, läuft bei mir so schon seit einigen Jahren perfekt so.
peternmb
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 427
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: JPG Auflösung automatisch herabsetzen

Beitragvon jbertram » Fr, 16. Dez 2016 11:19

sie sleep function als siebter Parameter wartet, [u]bevor[/u] es in die Funktion hineingeht, evt. hat das ja eine Bedeutung
jbertram
Rookie
Rookie
 
Beiträge: 5
Registriert: Mo, 02. Okt 2006 16:22
Wohnort: Oberursel

Re: JPG Auflösung automatisch herabsetzen

Beitragvon Tom » Fr, 16. Dez 2016 12:52

Das stimmt. Cool. Die Funktion Time() hat eigentlich nur einen Parameter (<cBaseZone>):

Code: Alles auswählen
? Time('UTC') // 12:49:30


Rufe ich sie mit dem zusätzlichen Parameter "Sleep(200)" auf, erzeugte ich quasi ein implizites Warten:

Code: Alles auswählen
? Time('UTC',Sleep(200)) // 12:49:32


Ich weiß noch nicht, wozu das gut sein könnte, aber es geht. Da Sleep() immer NIL zurückreicht, dürfte es auch kein Problem mit nichtdokumentieren Parametern geben.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6678
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin


Zurück zu Misc.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast