Orientamento immagini su report

di il
13 risposte

Orientamento immagini su report

Buongiorno, chiedo un aiutino:
esporto in PDF un report, tramite l'inserimento di un percorso scritto su un etichetta vi carico all'interno un numero variabile di immagini collegate, il problema è che vorrei che l'orientamento dell'immagine orizzontale/verticale avvenisse automaticamente in base all'orientamento del file di origine ,
è possibile secondo voi?

Grazie mille
Saluti

13 Risposte

  • Re: Orientamento immagini su report

    E l'orientamento del file di origine tu come hai pensato di capirlo...?
    Poi sei certo di non confondere il sizing del controllo quando dici orientamento...?
    Di solito il caricamento non perde l'orientamento ma se l'immagine è landacape ed il controllo verticale impostato con ritaglia... va da se che viene tagliato.
    Potresti impostare a Ridimensiona innanzitutto.

    In ogni caso non esiste con questo controllo la possibilità di ruotare o cambiare l'orientamento... ma puoi cambiare le dimensioni da rettangolo a base steetta(verticale) a rettangolo a base larga(landacape).
    Devi quindi leggere le dimensioni dell'immagine con le proprietà ImageWidth ed ImageHeight ed assegnarle dopo averle validate ed opportunamente proporzionate o scalate alle dimensioni del controllo immagine.
    Imposta sempre il ridimensiona come modalità di visualizzazione.
    Secondo me questo va più che bene se sei in grado di farlo.

    Alteimenti per fare quello che hai chiesto serve un Controllo Activex esterno magari il controllo immagine di Office che espone il metodo Rotate.

    MS Office Imaging Object

    Tuttavia questo oggetto devi conoscerlo per usarlo non essendo nativo di Access.
  • Re: Orientamento immagini su report

    Grazie della risposta,
    la questione è che le immagini sono in una cartella e provengono da una macchina fotografica, quindi in win le vedo in anteprima orizzontali o verticali a seconda di come sono scattate, il problema è che quando le allega al report le immagini caricate sono tutte orientate in landscape... (è vero che per assegnare posizioni e dimensioni dei riquadri delle foto ho impostato io delle dimensioni... ) le immagini sono in modalità zoom. ora provo ad impostare i campi come dei riquadri quadrati e vedo se l'immagine viene adattata meglio...
  • Re: Orientamento immagini su report

    @Alex ha scritto:


    E l'orientamento del file di origine tu come hai pensato di capirlo...?
    Poi sei certo di non confondere il sizing del controllo quando dici orientamento...?
    Di solito il caricamento non perde l'orientamento ma se l'immagine è landacape ed il controllo verticale impostato con ritaglia... va da se che viene tagliato.
    Potresti impostare a Ridimensiona innanzitutto.

    In ogni caso non esiste con questo controllo la possibilità di ruotare o cambiare l'orientamento... ma puoi cambiare le dimensioni da rettangolo a base steetta(verticale) a rettangolo a base larga(landacape).
    Devi quindi leggere le dimensioni dell'immagine con le proprietà ImageWidth ed ImageHeight ed assegnarle dopo averle validate ed opportunamente proporzionate o scalate alle dimensioni del controllo immagine.
    Imposta sempre il ridimensiona come modalità di visualizzazione.
    Secondo me questo va più che bene se sei in grado di farlo.

    Alteimenti per fare quello che hai chiesto serve un Controllo Activex esterno magari il controllo immagine di Office che espone il metodo Rotate.

    MS Office Imaging Object

    Tuttavia questo oggetto devi conoscerlo per usarlo non essendo nativo di Access.
    Ciao mi chiedevo se esiste un modo per leggere da VBA le proprietà di un file(immagine), vorrei capire se posso assegnare a delle variabili le dimensioni di altezza e larghezza per poi confrontarli in modo da capire se un immagine è verticale o orizzontale e se è possibile far ruotare il riquadro immagine di 90° gradi con un ciclo if usando il confronto altezza larghezza come discrimine....
  • Re: Orientamento immagini su report

    Scusa ma quello che ho scritto lo hai letto...?
  • Re: Orientamento immagini su report

    @Alex ha scritto:


    Scusa ma quello che ho scritto lo hai letto...?
    scusami hai ragione, ma è da 2 giorni che provo varie soluzioni e non riesco a fare quello che hai detto, o con più probabilità mi sfuggono dei passaggi, quindi facevo un recap di quello che mi serve fare...

    la questione è:

    come arrivo dal percorso file ad ottenere le variabili imageheigth e width ?

    ho fatto qualche prova inserendo direttamente un link di una immafine che windows vede "verticale" e assegnando al riquadro base stretta ed altezza maggiore ma il risultato è l'immagine in orizzontale con lato lungo della misura della base del riquadro, è vero però che ho dimenticato di impostare il controllo immagine su "ridimensiona" per ora è su zoom...

    scusa se mi sono espresso male nell'intento di sintetizzare...
  • Re: Orientamento immagini su report

    Le proprietà di cui ho parlato sono del conttollo immagine... quindi se non carichi l"immagine secondo te come fai...
    Ora se non ti leggi e studi la guida per le proprietà e le funzioni, quello che fai è... andare a tentoni, e personalme lo trovo tempo perso nel 90% dei casi, a meno di avere già ottime basi.

    Oltretutto se non ci fai vedere il codice che hai testato è di fatto improponibile aiutarti usando concetti teorici che non maneggi proprio con disinvoltura...
  • Re: Orientamento immagini su report

    Aggiornamento, ho fatto il test con il controllo immagine "ridimensiona" risultato mi streccha la foto per riempire il riquadro, ma l'orientamento di base rimane orizzontale...allego i due risultati così mi spiego meglio(2379 modalità zoom 2378 modalità ridimensiona)... non riesco ad uscirne

    sicuramente sbaglio qualcosa io ma non capisco cosa..
    Allegati:
    26597_8ae644c76a23813a0433ea9b8a3d0e37.jpg
    26597_8ae644c76a23813a0433ea9b8a3d0e37.jpg

    26597_7cb91fb1aa5a7f5a0504f65e5679bb9c.jpg
    26597_7cb91fb1aa5a7f5a0504f65e5679bb9c.jpg
  • Re: Orientamento immagini su report

    Scrivo di seguito il codice che uso per generare il report singolo per ogni id, nel quale cerco i collegamenti alle immagini e li scrivo nelle etichette di controllo:

    Dim db As DAO.Database

    Dim t, c, r As DAO.Recordset

    Dim F As String
    Dim P As String
    Dim trig As Integer
    Dim Z, x, W, y, a1, a2, a3, a4, m, n, o As String




    Set db = CurrentDb
    Set t = CurrentDb.OpenRecordset("imgq")
    Set c = CurrentDb.OpenRecordset("zaqm")
    Set r = CurrentDb.OpenRecordset("resq")

    a4 = c.Fields("Comune")

    x = 219
    m = 234
    o = 234



    a2 = CurrentProject.Path



    W = "*"



    y = 219
    Controls("Etichetta" & y).Caption = W
    y = y + 1
    Controls("Etichetta" & y).Caption = W
    y = y + 1
    Controls("Etichetta" & y).Caption = W
    y = y + 1
    Controls("Etichetta" & y).Caption = W
    y = y + 1
    Controls("Etichetta" & y).Caption = W

    Controls("Etichetta" & m).Caption = W
    m = m + 1
    Controls("Etichetta" & m).Caption = W
    m = m + 1
    Controls("Etichetta" & m).Caption = W
    m = m + 1
    Controls("Etichetta" & m).Caption = W




    'IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI IMMAGINI


    If DCount("*", "imgq") = 0 Then Exit Sub



    t.MoveFirst




    Do Until t.EOF 'Ripete il codice fino alla fine della t

    Z = t.Fields("limg")


    a1 = Mid$(Z, InStrRev(Z, "\") + 1, InStrRev(Z, ".") - InStrRev(Z, "\") + 3) ' nome immagine completo di estensione
    a3 = Mid$(Z, InStrRev(Z, "media"), InStrRev(Z, ".") - InStrRev(Z, a4) + 10) 'Mid$(Z, InStrRev(Z, "media"), InStrRev(Z, ".") - InStrRev(Z, a4) - 2) ' nome percorso

    Controls("Etichetta" & x).Caption = a2 & "\" & a3 '& "\" & a1





    t.MoveNext

    x = x + 1

    If x > 224 Then
    Exit Do
    End If



    Loop


    ' FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI FINE IMMAGINI


    'RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF RESISTOGRAF

    If DCount("*", "resq") = 0 Then GoTo L2


    r.MoveFirst

    Do Until r.EOF 'Ripete il codice fino alla fine della tst

    n = r.Fields("resist")
    a1 = Mid$(n, InStrRev(n, "\") + 1, InStrRev(n, ".") - InStrRev(n, "\") + 3) ' nome immagine completo di estensione
    a3 = Mid$(n, InStrRev(n, "media"), InStrRev(n, ".") - InStrRev(n, a4) + 10) 'Mid$(n, InStrRev(n, "media"), InStrRev(n, ".") - InStrRev(n, a4) - 2) ' nome percorso

    Controls("Etichetta" & o).Caption = a2 & "\" & a3 '& "\" & a1





    r.MoveNext

    o = o + 1

    If o > 237 Then
    Exit Do
    End If



    Loop

    'FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH FINE RESISTOGRAPH


    L2:

    If Me.Etichetta219.Caption = "*" Then 'Or "*" Then
    Me.Etichetta219.Left = 10
    Me.Etichetta219.Top = 10
    Me.Etichetta219.Visible = False
    Me.Immagine228.Visible = False
    Else
    Me.Immagine228.Picture = Me.Etichetta219.Caption
    Me.Immagine228.Visible = True

    End If


    If Me.Etichetta220.Caption = "*" Then 'Or "*" Then
    Me.Etichetta220.Left = 10
    Me.Etichetta220.Top = 10
    Me.Etichetta220.Visible = False
    Me.Immagine229.Visible = False
    Else
    Me.Immagine229.Picture = Me.Etichetta220.Caption
    Me.Immagine229.Visible = True



    End If

    If Me.Etichetta221.Caption = "*" Then 'Or "*" Then
    Me.Etichetta221.Left = 10
    Me.Etichetta221.Top = 10
    Me.Etichetta221.Visible = False
    Me.Immagine230.Visible = False
    Else
    Me.Immagine230.Picture = Me.Etichetta221.Caption
    Me.Immagine230.Visible = True



    End If

    If Me.Etichetta222.Caption = "*" Then 'Or "*" Then
    Me.Etichetta222.Left = 10
    Me.Etichetta222.Top = 10
    Me.Etichetta222.Visible = False
    Me.Immagine231.Visible = False
    Else
    Me.Immagine231.Picture = Me.Etichetta222.Caption
    Me.Immagine231.Visible = True



    End If

    If Me.Etichetta223.Caption = "*" Then 'Or "*" Then
    Me.Etichetta223.Left = 10
    Me.Etichetta223.Top = 10
    Me.Etichetta223.Visible = False
    Me.Immagine232.Visible = False
    Else
    Me.Immagine232.Picture = Me.Etichetta223.Caption
    Me.Immagine232.Visible = True


    End If

    If Me.Etichetta224.Caption = "*" Then 'Or "*" Then
    Me.Etichetta224.Left = 10
    Me.Etichetta224.Top = 10
    Me.Etichetta224.Visible = False
    Me.Immagine233.Visible = False
    Else
    Me.Immagine233.Picture = Me.Etichetta224.Caption
    Me.Immagine233.Visible = True



    End If

    If Me.Etichetta237.Caption = "*" Then
    Me.Immagine241.Top = 10
    Me.Immagine241.Left = 10
    Me.Immagine241.Height = 3
    Me.Immagine241.Width = 3
    Me.Immagine241.Visible = False

    End If

    If Me.Etichetta236.Caption = "*" Then
    Me.Immagine240.Top = 10
    Me.Immagine240.Left = 10
    Me.Immagine240.Height = 3
    Me.Immagine240.Width = 3
    Me.Immagine240.Visible = False

    End If

    If Me.Etichetta235.Caption = "*" Then
    Me.Immagine239.Top = 10
    Me.Immagine239.Left = 10
    Me.Immagine239.Height = 3
    Me.Immagine239.Width = 3
    Me.Immagine239.Visible = False

    End If

    If Me.Etichetta234.Caption = "*" Then
    Me.Immagine238.Top = 10
    Me.Immagine238.Left = 10
    Me.Immagine238.Height = 3
    Me.Immagine238.Width = 3
    Me.Immagine238.Visible = False

    End If

    If Me.Etichetta225.Caption = "*" Then 'Or "*" Then
    Me.Etichetta225.Height = 600
    Me.Etichetta225.Left = 10
    Me.Etichetta225.Top = 10
    Me.Etichetta225.Visible = False





    End If





    End Sub

    è sicuramente poco elegante e sicuramente ottimizzabile, ma purtroppo mi hanno messo delle scadenze serratissime e al momento punto a raggiungere il risultato, poi sistemerò la forma....
  • Re: Orientamento immagini su report

    Quella è proprio ruotata e non riuscirai mai a girarla con access se non usando il controllo di cui al primo suggerimento.
  • Re: Orientamento immagini su report

    @Alex ha scritto:



    Di solito il caricamento non perde l'orientamento ma se l'immagine è landacape ed il controllo verticale impostato con ritaglia... va da se che viene tagliato.
    Potresti impostare a Ridimensiona innanzitutto.
    l'immagine che ho messo in esempio, però in windows mi viene presentata correttamente in modalità verticale, cosa posso aver sbagliato?... proverò a fare alrti test con altre immagini....

    @Alex ha scritto:



    Alteimenti per fare quello che hai chiesto serve un Controllo Activex esterno magari il controllo immagine di Office che espone il metodo Rotate.

    MS Office Imaging Object

    Tuttavia questo oggetto devi conoscerlo per usarlo non essendo nativo di Access.
    avresti qualche link per informarmi su come usare il controllo activex? immagino che sarà un casino viasta la mia precaria conoscenza di vb, ma non vedo alternative...
    grazie per il supporto, porta pazienza, ma sono alle prime armi e mi sto cercando di arrangiare....
  • Re: Orientamento immagini su report

    @Alex ha scritto:



    Di solito il caricamento non perde l'orientamento
    ho appena fatto un test rinominando un'altro file jpg verticale vecchio che avevo e tutto funziona , l'orientamento non viene perso e l'immagine viene visualizzata correttamente... a questo punto c'è qualcosa che non va sul file immagine , avete un idea di cosa possa essere? ho confrontato le proprietà delle due immagini e l'unica differenza degna di nota è la versione exif, vi risulta che ci possano essere problemi legati alla lettura exif da parte di access?

    suggerimenti?

    grazie mille
  • Re: Orientamento immagini su report

    Access non legge alcun dato EXIF...
  • Re: Orientamento immagini su report

    Allora non riesco a capire quale fosse il problema... fatto sta che dopo aver importato ed esportato le immagini in lightroom il problema è sparito....

    grazie del supporto
Devi accedere o registrarti per scrivere nel forum
13 risposte