+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

Errore "Bitmap size too big" con immagine bitmap di grandi dimensioni

  1. #1
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    sto cercando di impostare le dimensioni di una TImage a 12000 x 12000 ma ottengo il messaggio

    bitmap size too big
    qualcuno sa come aggirare il problema
    ℹ️ Leggi di più su systemgvp ...

  2. #2
    L'avatar di +m+
    +m+
    +m+ non è in linea Scribacchino
    Quote Originariamente inviato da systemgvp Visualizza il messaggio
    sto cercando di impostare le dimensioni di una TImage a 12000 x 12000 ma ottengo il messaggio



    qualcuno sa come aggirare il problema
    Non credo si possa.
    Normalmente uso timage32.

    Se hai voglia guarda qui
    http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.htm (supervecchio).
    A memoria timage crea una bitmap nella RAM della scheda video, e c'è la possibilità invece di crearne una nella RAM vera e propria
    (una device indipended?)
    Francamente non ricordo, è passato tanto tempo

    EDIT: questo vecchissimo programma
    http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.ZIP
    mi crea bitmap fino a 16384x16384, per circa 800MB, dopodichè s'incazza e non poco
    Ultima modifica di +m+; 16-06-2016 17:18 

  3. #3
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Quote Originariamente inviato da systemgvp Visualizza il messaggio
    sto cercando di impostare le dimensioni di una TImage a 12000 x 12000 ma ottengo il messaggio [...]
    qualcuno sa come aggirare il problema
    A che scopo creare un bitmap così grande?
    Non potresti lavorare su una sezione ridotta alla volta?
    ℹ️ Leggi di più su _alka_ ...

  4. #4
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    Uso la bitmap per avere uno sfondo bianco, e inserire al suo interno gli oggetti da lavoro, ovvero rettangoli e cerchi per creare reti stradali. C'è qualche altro modo che mi consenta di avere spazi di lavoro più ampi?
    ℹ️ Leggi di più su systemgvp ...

  5. #5
    L'avatar di +m+
    +m+
    +m+ non è in linea Scribacchino
    Un WMF?


    .

  6. #6
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    cioè? intendi il formato dell'immagine?

    avevo esposto questa domanda qui

    http://forum.masterdrive.it/delphi-2...nte-cad-95607/

    ma purtroppo non ho mai ottenuto risposta
    ℹ️ Leggi di più su systemgvp ...

  7. #7
    L'avatar di +m+
    +m+
    +m+ non è in linea Scribacchino
    Per autocad, a memoria, anni e anni fa avevo visto un componente di interfacciamente, mai provato e di cui non ti so dire nulla.

    per l'immagine sì, intendo: perchè non provi a creare un'immagine vettoriale, un WMF alla fin fine, invece di una bitmap gigantesca?
    un tmetafile, con tmetafilecanvas, poi col draw ci piazzi sopra le BMP.
    Francamente non ti so dire cosa succede (mai capitato), cioè se puoi fare un WMF "gigante" in cui poi sopra ci piazzi "piccole" BMP a "pezzi".

    Forse, e dico forse, riesci a lavorare con file piccoli invece che con bitmap enormi.

    Hai mai pensato, così tanto per dire, di creare addirittura un PDF con sopra le bitmap?

  8. #8
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    stavo pensando invece di valutare se mettere il tutto in un layer e mettere un rettangolo di sfondo.

    Comunque la soluzione migliore sarebbe un ambiente tipo autoCAD dove si ha uno spazio infinito dove poter disegnare.
    ℹ️ Leggi di più su systemgvp ...

  9. #9
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Quote Originariamente inviato da systemgvp Visualizza il messaggio
    stavo pensando invece di valutare se mettere il tutto in un layer e mettere un rettangolo di sfondo.
    Comunque la soluzione migliore sarebbe un ambiente tipo autoCAD dove si ha uno spazio infinito dove poter disegnare.
    Un sistema come AutoCAD lavora con una serie di dati e traccia solamente la porzione relativa all'area visibile, con le dimensioni calcolate in base al fattore di zoom.

    Devi modificare il modo in cui il tuo sistema lavora: non devi tracciare la grafica su un bitmap gigante e visualizzare quello, bensì tenere in memoria le informazioni relative agli oggetti che devi rappresentare (es. posizione, grandezze, colore, forma, ecc.) e intercettare il messaggio WM_PAINT (facendo semplicemente l'override del metodo Paint, ad esempio ereditando da TGraphicControl se vuoi consumare il minimo delle risorse) andando a usare le informazioni che hai in memoria per rappresentare gli oggetti in quella posizione.

    In breve, non devi applicare le informazioni al bitmap e mostrare quello, bensì tracciare direttamente nell'area del controllo di visualizzazione.

    Un bitmap puoi usarlo come appoggio se vuoi implementare una sorta di double buffering ed evitare l'effetto di flickering, ma devi limitarti al disegno sul bitmap che rappresenta l'area visibile dell'intero documento, altrimenti sarebbe troppo grande da conservare in memoria, oltreché un bitmap grande è molto più lento da disegnare, quindi non avresti fluidità.

    Se vuoi un'ottima (a mio avviso) libreria per gestire grafica ad altre prestazioni, puoi usare Graphics32 (solo Windows), mentre FireMonkey già sfrutta adeguatamente la scheda grafica (se stai usando questa libreria).

    Ciao!
    ℹ️ Leggi di più su _alka_ ...

  10. #10
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    Quindi in definitiva dovrei avere la mia rete stradale in memoria o da qualche altra parte e far dare all'utente l'impressione che zoommando o spostandosi nel piano è il foglio che si sposta mentre in realtà l'applicazione, a ogni cambiamento di visuale ridisegna la rete.

    Ora però si pone un altro problema, in quanto se il disegno è statico, questo concetto dovrebbe funzionare alla perfezione, ma io ho anche dei veicoli che si muovo sulla rete che al momento mostro attraverso dei TRectangle.

    Un esempio di quello che faccio attualmente lo potete vedere in questi due video

    https://www.youtube.com/watch?v=ervfH381imU

    ma se la rete la gestisco come gestisco la visualizzazione in 3D attraverso un TViewPort3D le cose potrebbero migliorare secondo voi?

    https://www.youtube.com/watch?v=XCIDT4CAdvQ
    ℹ️ Leggi di più su systemgvp ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Salvare immagine da picture in bitmap monocromatica
    Da licetinsanire nel forum Visual Basic 6
    Risposte: 13
    Ultimo Post: 30-12-2010, 22:12
  2. Risposte: 2
    Ultimo Post: 21-07-2009, 11:45
  3. Immagine Bitmap e Dati Binario Lungo in Access
    Da TorrediPisa nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 05-04-2008, 00:11
  4. [Win32] Errore lettura immagine bitmap
    Da thedoot nel forum C/C++
    Risposte: 11
    Ultimo Post: 05-10-2006, 23:32
  5. Risposte: 9
    Ultimo Post: 07-03-2006, 15:35