Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

MS-InkPicturecontrol als .jpg speichern

Begonnen von jagger, Juli 11, 2017, 16:27:28

⏪ vorheriges - nächstes ⏩

jagger

Guten Tag,
wie kann man mit dem MS-InkPicturecontrol Bilder als .jpg-Datei speichern?

'---Byte Array, Variant geht nicht !
Dim gif() As Byte
   '--jetzt die Unterschrift in den Bytearray übernehmen
   gif = Me!inkPictureU.Ink.Save(IPF_GIF, IPCM_Default)
   ' -- und jetzt in einer Datei speichern:
   Open "C:\irgendwas\" & Me![blablabla] & ".gif" For Binary Access Write As #1 Len = UBound(gif)
   Put #1, 1, gif
   Close #1

erzeugt prima .gif-Dateien.
Was muss man verändern, wenn es eine .jpg-Datei werden soll?
Hat jemand einen Tipp?
Vielen Dank!

A2000 und A2016 auf W10


Beaker s.a.

ZitatOpen "C:\irgendwas\" & Me![blablabla] & ".gif" For Binary Access Write As #1 Len = UBound(gif)
Vielleicht das richtige Suffix übergeben?
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

jagger

Hallo Beaker,

das habe ich schon probiert. Alle ".gif" in ".jpg" geändert.
Die erzeugte .jpg-Datei funktioniert dann aber nicht.

LG
jagger

markusxy

Zitat von: jagger am Juli 11, 2017, 16:50:51
Hallo Beaker,

das habe ich schon probiert. Alle ".gif" in ".jpg" geändert.
Die erzeugte .jpg-Datei funktioniert dann aber nicht.

LG
jagger
Das ist doch Unsinn.
Du kannst doch nicht einfach eine Dateiendung ändern.
Außer bei Dateien wie csv oder txt die ja kein echtes Format besitzen.
Aber wenn du bei einem csv einfach pdf hinschreibst wird es ja kein PDF.

Eine Endung steht für ein Format, also für einen konkreten Dateiaufbau.
Ansonsten könnte ja kein Programm ein Bild anzeigen, wenn das Format nicht klar wäre.

Du willst also die Daten von einem Format in ein anderes konvertieren.
Das ist eine Menge Arbeit. Such dir also ein Programm, das dir die Arbeit abnimmt.

LG Markus

jagger

@markus888,
wenn man googelt findet man dazu eben, dass das InkPicture Control mit .jpg, .bmp, .png, or .gif Formaten umgehen kann. Es müssten also bestimmt nur einige Parameter verändert werden, um ein .jpg zu erzeugen.
Dass man durch Veränderung der Erweiterung nicht das Dateiformat ändern kann, ist schon klar.
Ich wollte nur auf den Tipp von Beaker eingehen.

LG
jagger

Lachtaube

Dann verweise doch bitte auf einen Deiner Google-Funde, wo das InkPicture-Control dazu befähigt ist, ein jpeg zu speichern.
Grüße von der (⌒▽⌒)

markusxy

#6
@jagger,
wenn du schon die Methoden dazu kennst, würde es ausreichen in die OnlineHilfe zu schauen. Dort erfährst du die Parameter die geändert gehören. Hiermit habe ich getestet. Mir ging es auch darum binäre Daten ohne Zwischenspeichern im Filesystem anzuzeigen. Dafür gibt es zwar verschiedene Möglichkeiten, aber die Klasse bietet darüber hinaus noch vielfältige Möglichkeiten an.

LG M

jagger

@markus888,
genau in dieser OnlineHilfe kann ich eben nichts darüber finden. Sonst hätte ich ja nicht gefragt.  ;)

@Lachtaube,
von speichern habe ich aber erst mal nicht gesprochen.
Ich sprach von umgehen, hoffe aber dass es auch .jpg speichern kann.
Mit . gif geht es ja auch. Nur weiss ich eben nicht wie.
Hier der gewünschte Link: https://technet.microsoft.com/de-de/sysinternals/ms839534
Vielleicht findet man da eine Erklärung. Ich seh da leider nichts.

LG
jagger

markusxy

Zitat von: jagger am Juli 12, 2017, 08:52:11
@markus888,
genau in dieser OnlineHilfe kann ich eben nichts darüber finden. Sonst hätte ich ja nicht gefragt.  ;)

Es steht schon da, man muss nur die Augen aufmachen und den Verstand auch benutzen.
Hier Deine Anweisung:

inkPictureU.Ink.Save(IPF_GIF, IPCM_Default)


Was ist Ink?
In der Hilfe wird gezeigt, dass die Eigenschaft Ink ein Objekt liefert.
Alle Klassen und Interfaces von InkPicture sind aufgeführt, dann schaust du bei der richtigen Klasse unter der Methode save nach und hast alle Infos. ;)

LG M

jagger

@markus888,
da bin ich auch angekommen, sehe nur (noch) nicht richtig durch. Deshalb frage ich ja hier.
LG
jagger

markusxy

Zitat von: jagger am Juli 12, 2017, 09:46:33
@markus888,
da bin ich auch angekommen, sehe nur (noch) nicht richtig durch. Deshalb frage ich ja hier.
LG
jagger

was genau ist unklar?

Wie ich grade sehe, ist die Klasse ja ein Bestandteil des Betriebssystems und bereits am PC installiert.
Du könntest also auch einfach einen Verweis auf die Klasse legen und dann mit dem Objektkatalog arbeiten. Möglicherweise ist es auch von der installierten Version abhängig, welche Formate gespeichert werden können.

PhilS

#11
Zitat von: markus888 am Juli 12, 2017, 10:09:10was genau ist unklar?
Für mich als Mitleser ist nach wie vor unklar, wie man den Inhalt des Ink-Controls als JPG speichern kann. - Das war ja auch die ursprüngliche Frage.

Ich würde nach einen kurzen Blick in die Doku davon ausgehen, dass das nicht möglich ist.

Da @markus888 so vehement darauf hinweist, dass man nur die Doku genau genug lesen muss, um die Lösung zu finden, bin ich auf einen konkreten Lösungsvorschlag gespannt.

Sollte ich jedoch mit meiner voreiligen(?) Annahme richtig liegen und es ist nicht möglich mit dem Ink-Control direkt JPGs zu erzeugen, dann müsste man das Output des Controls mit anderen Mitteln (GDI+ könnte ein Ansatz sein) nachträglich in das JPG-Format konvertieren.

Für mich stellt sich aber auch die Frage: Warum unbedingt JPG?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Lachtaube

Da steht nur, dass man Bildchen in das InkPicture-Control laden kann - dass man die InkStrokes selbst in einem anderen Format ablegen kann, ist nirgendwo beschrieben und würde auch dem Sinn der Sache widersprechen.
Grüße von der (⌒▽⌒)

jagger

@PhilS, Danke!

@Lachtaube,
Ich benutze das MS-InkPicturecontrol dafür,
dass man einen Auftrag unterschreiben (auf dem Tablet) kann.
Wenn der Auftrag (Bericht als Print oder als PDF) dann ausgedruckt wird, ist die Unterschrift da drunter.
Bei einigen Tablets (W10) hat Access Probleme die ".Gif-Unterschrift" im Bericht anzuzeigen und auszudrucken.
Mit .jpg gibt es diese Probleme nicht.
Warum soll es dem Sinn der Sache widersprechen eine Datei als .jpg abzuspeichern?

LG
jagger

Bitte jetzt keine Belehrung über Datenschutz und Unterschriften...!

markusxy

@PhilS,
die onlineHilfe hätte ihm zeigen sollen, dass es keine Konstanten für sein Vorhaben gibt.
Meiner Meinung nach sollten Programmierer ja in der Lage sein eine Hilfe zu benützen.
Wie sollen sie sonst Probleme lösen, wenn sie nicht in der Lage sind die Hilfe zu verwenden?

Allerdings habe ich ihm auch schon im meinem zweiten Post eine Klasse gezeigt mit dem es gehen würde.
Natürlich ist er darauf nicht eingegangen.