+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Inserire immagine in un file RTF

  1. #1
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    Post
    582

    Inserire immagine in un file RTF

    Salve a tutti,

    devo inserire una immagine precedentemente salvata (640x480) in un file RTF dove ho già impostato un tag noto #IMMAGINE, ho trovato una procedura online sul forum dell'embarcadero

    https://forums.embarcadero.com/messa...ssageID=781736

    il codice non restituisce alcun errore, inserisce l'immagine codificata nella pagina ma in Word non si vede. Andando a visionare il testo del file RTF mi accorgo però che la stessa immagine messa manualmente da Word (A) e quella inserita con delphi (B) sono differenti, cosa potrebbe essere?

    1.jpg
    Embarcadero RAD Studio 10.2.3 Tokyo - con Pascal dal 1992

  2. #2
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    Post
    582
    per chi avesse bisogno ho risolto in questo modo


    function ConvertireImmagineInTestoRTF(PercorsoFileImmagine : string; dimensioneX, dimensioneY : integer) : string;
    var CountRead : integer; fs : TFileStream; strImageHex : string;
    Buff : array [0..15] of byte; HexText : array[0..31] of Char;
    begin
    //converte l'immagine in Hex, il formato dell'immagine e' indifferente
    try
    //apre l'immagine in uno stream
    fs := TFileStream.Create(PercorsoFileImmagine, fmOpenRead or fmSharedenyNone);
    //va alla prima linea del file stream nel buffer
    CountRead := fs.Read(Buff, SizeOf(Buff));
    //gira tutta l'immagine nel buffer
    while CountRead <> 0 do
    begin
    //converte ogni linea dello Stream in Hex
    BinToHex(Buff, HexText, CountRead);
    //accoda la stringa convertita alla stringa finale
    strImageHex := strImageHex + HexText + #13;
    //va alla linea successiva dell'immagine nel buffer
    CountRead := fs.Read(Buff, SizeOf(Buff));
    end;
    //klibera la memoria
    fs.Free;
    finally
    end;
    //crea il testo - forse per immagini JPEG questo "pngblip" va cambiato
    ConvertireImmagineInTestoRTF := '{\pict\pngblip' +
    '\picw' + IntToStr(dimensioneX) +
    '\pich' + IntToStr(dimensioneY) +
    '\bin ' + #13 + strImageHex + '}';
    end;
    Embarcadero RAD Studio 10.2.3 Tokyo - con Pascal dal 1992

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi