Office: (Office 2016) Bilddaten aus Speicher direkt ins Image control laden

Helfe beim Thema Bilddaten aus Speicher direkt ins Image control laden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo daolix, sooo schön kurz :-), doch Access stürzt leider ohne Meldung ab in der vierten CopyMemory-Zeile CopyMemory VarPtr(B(55)),... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Frank200, 8. Dezember 2020.

  1. Bilddaten aus Speicher direkt ins Image control laden


    Hallo daolix,

    sooo schön kurz :-), doch Access stürzt leider ohne Meldung ab in der vierten CopyMemory-Zeile
    CopyMemory VarPtr(B(55)), VarPtr(BmpData(0, 0)), InfoHead.biSizeImage

    Ist die Deklaration von B als Variant richtig?

    Code:
     
  2. Ergänzung:
    InfoHead.biSizeImage = 107956
    UBound(BmpData,1) = 547
    UBound(BmpData,2) = 196
     
  3. nö. Weg damit
     
  4. Bilddaten aus Speicher direkt ins Image control laden

    ok, entfernt. Doch es bleibt dabei, daß Access beim letzten CopyMemory abstürzt.
     
  5. Dann weis ich nicht. Kann ich nicht bestätigen. Wenn ich die Zeilen in deine ganz oben genannten Funktion einsetze stürtzt da nix ab.
     
  6. Habe jetzt das probiert und den FileHeader weggelassen:
    Da kommt beim letzten CopyMemory ein "Index außerhalb des gültigen Bereiches"

    Code:
    Ist es richtig, daß Len(FileHead) trotzdem in die Dimensionierung von B() eingerechnet werden muß und InfoHead beginnend ab B(15) eingeschrieben wird?
     


  7. ReDim B(1 To Len(InfoHead) + (InfoHead.biSizeImage)) As Byte
    CopyMemory VarPtr(B(1)), VarPtr(InfoHead), 40
    CopyMemory VarPtr(B(41)), VarPtr(BmpData(0,0)), InfoHead.biSizeImage

    Forms!CO2!Bild2.PictureData = B()
     
  8. Bilddaten aus Speicher direkt ins Image control laden

    weiterhin "Index außerhalb des gültigen Bereiches" bei
    CopyMemory VarPtr(B(41)), VarPtr(BmpData(0, 0)), InfoHead.biSizeImage

    Ich habe das Gefühl, zu kompliziert zu denken und das Einfache zu übersehen ... :-)
    Hatte zwischendurch mit dem 1-dimensionalem Array buff2() probiert, hat aber das gleiche Ergebnis.
     
  9. frag sich nur welches der beiden Arrays (b() oder BmpData()) jetzt ausserhalb des gültigen bereichs angesprochen wird. vor nen Copymem check mal L- & Ubound der arrays.
     
  10. Gute Frage! Es liegt an B()
    Nach der ReDim-Anweisung stimmen LBound(B) und UBound(B).
    Frage ich die jedoch nach dem ersten CopyMemory wieder ab, erhalte ich die Fehlermeldung wegen ungültigem Index
     
  11. lol
    Ich vermute mal die Deklaration für CopyMemory ist bei dir ne andere als bei mir.

    entweder
    CopyMemory Byval VarPtr(B(1)), Byval VarPtr(FileHead.bfType), 2
    CopyMemory Byval VarPtr(B(3)), Byval VarPtr(FileHead.bfSize), 12
    CopyMemory Byval VarPtr(B(15)), Byval VarPtr(InfoHead), 40
    CopyMemory Byval VarPtr(B(55)), Byval VarPtr(BmpData(0, 0)), InfoHead.biSizeImage

    oder nimm alle varptr's samt den umschliessenden Klammern aus den entsprechenden Zeilen.
     
  12. Hallo daolix,

    Das wars! Vielen herzlichen Dank! Das ist wie ein Weihnachtsgeschenk :-)
    Mit den ByVals funktioniert es.

    In der ersten Zeile nimmt er InfoHead ohne alles an (ohne ByVal also ByRel, und ohne Pointerverweise VarPtr().
    In der zweiten Zeile kann BmpData nur mit ByVal und VarPtr() übergeben werden. Alles andere crasht.
    B() erfordert immer ByVal und VarPtr().
    Code:
    Auf was für einem System hast Du getestet? Ich überlege, vorsichthalber für die Weitergabe der accde an die User (von Access 2013 an aufwärts) das ByVal und das VarPtr() bei InfoHead zu belassen. Was denkst Du?

    Und wie Du sicherlich schon bemerkt hast, habe ich tatsächlich schon ohne den FileHeader getestet und es läuft.
    Hier erlaube bitte noch eine Frage für mein Verständnis:
    Ich wundere mich daß es in der Form ohne FileHeader läuft und die InfoHead-Daten beginnend ab B(1) gespeichert werden und nicht wie im anderen Fall beginnend ab B(15). Ist es nicht so, daß in B() nur die Werte gespeichert werden, aber nicht die Namen der Variablen, aus denen sie kommen?
    Woher weiß also der nächste Schritt, wo welche Daten in B() liegen?

    Nochmals vielen vielen Dank!
     
Thema:

Bilddaten aus Speicher direkt ins Image control laden

Die Seite wird geladen...
  1. Bilddaten aus Speicher direkt ins Image control laden - Similar Threads - Bilddaten Speicher Image

  2. Vorlagen (nach)bearbeiten und speichern

    in Sonstiges
    Vorlagen (nach)bearbeiten und speichern: Vorlagen können ja was feines sein. Aber irgendwie verstehe ich nicht, ob und wie man diese Nachträglich bearbeiten kann? Wenn ich eine Vorlage aufrufe, wird sie ja anschließend als "normales"...
  3. Excel Tabellenblatt als PDF speichern unter Vorgabe Dateinamen aus einer Zelle

    in Microsoft Excel Hilfe
    Excel Tabellenblatt als PDF speichern unter Vorgabe Dateinamen aus einer Zelle: Hallo zusammen, ich möchte eine VBA Programmierung machen wie folgt. Das aktuelle Excel-Tabellenblatt soll als PDF Speicher unter, unter Vorgabe des Dateinamens der in Zelle A1 steht gespeichert...
  4. Den Pfad verändern

    in Microsoft Excel Hilfe
    Den Pfad verändern: Einen schönen Sonntag erstmal in die Runde. Ich hätte noch ein Problem zu Office 2021. Beim speichern erner z. B. EXCEL Datei ist folgender Pfad aufgeführt, der mit dem FireFox Logo versehen ist....
  5. Excel per Button Speichern und Schliessen und "X - Button" deaktivieren

    in Microsoft Excel Hilfe
    Excel per Button Speichern und Schliessen und "X - Button" deaktivieren: Guten Morgen zusammen, ich suche nach einem VBA-Code (unter Office 365), um das Schließen einer Excel-Datei über das "Rote X" oben rechts zum Einen zu verhindern und statt dessen zum Anderen den...
  6. Datei als OLE-Objekt via FilePicker auswählen und speichern

    in Microsoft Excel Hilfe
    Datei als OLE-Objekt via FilePicker auswählen und speichern: Hallo zusammen, Leider funktioniert der nachfolgende Code nicht, um eine Datei als OLE-Objekt via FilePicker auszuwählen und zu speichern. Die Dateiauswahl funktioniert soweit, nur leider das...
  7. offene Word-Datei per VBA speichern

    in Microsoft Excel Hilfe
    offene Word-Datei per VBA speichern: Guten Abend zusammen, mit dem nachfolgenden Code öffne ich ein OLE-Objekt (Word-Datei) aus Excel heraus. Sheets("WORD").Select ActiveSheet.Shapes.Range(Array("Object 7")).Select...
  8. Persönliche Vorlagen weg, lassen sich nicht neu speichern

    in Microsoft Word Hilfe
    Persönliche Vorlagen weg, lassen sich nicht neu speichern: Seit vielen Jahren habe ich die persönlichen Vorlagen in einem bestimmten Verzeichnis gespeichert, und sie wurden mir immer angezeigt und geladen. Seit heute werden keine persönlichen Vorlagen für...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden