Visualizzazione dei risultati da 1 a 9 su 9

Discussione: canvas drawing

  1. #1

    canvas drawing

    Salve!
    Ho una pagina html5 che fa uso di uno script in javascript che carica un'immagine
    e la disegna in un canvas.
    codice:
    <script type="text/javascript">
          function draw()
          {
            var canvas = document.getElementById('my_canvas');
    	var img = new Image();
    	img.src = 'screen0.jpg';
            if (canvas.getContext){
              var ctx = canvas.getContext('2d');
              ctx.drawImage(img,0,0);
    	  //ctx.fillStyle = "rgba(0,0,0,38)";
              //ctx.fillRect(0,canvas.height-80,canvas.width,80);
            }
          }
    </script>
    Quello che non capisco è perchè l'immagine, invece di essere disegnata con le sue dimensioni originali, venga molto allargata in entrambe le dimensoni.
    Inoltre il rettangolo che provo a disegnarci subito sopra, sebbene solo con 38 come alpha, viene disegnato completamente opaco, tale da oscurare l'immagine sottostante.

    Perchè succedono queste cose? Probabilmente sono questioni banali ma sono ancora agli inizi...

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Metti la pagina online e riporta qui il link alla stessa
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io con firefox 15 non vedo nulla tranne lo sfondo
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Originariamente inviato da cavicchiandrea
    Io con firefox 15 non vedo nulla tranne lo sfondo
    Perchè non hai l'immagine nella cache, lo script non attende il caricamento...

    codice:
    <script type="text/javascript">
          function draw()
          {
            var canvas = document.getElementById('my_canvas');
    	var img = new Image();
    	img.src = 'screen0.jpg';
            img.onload=function(){
              if (canvas.getContext){
              var ctx = canvas.getContext('2d');
              ctx.drawImage(img,0,0);
    	  //ctx.fillStyle = "rgba(0,0,0,38)";
              //ctx.fillRect(0,canvas.height-80,canvas.width,80);
            }
           }
          }
    </script>

  6. #6
    ahn...quindi l'immagine viene scaricata a metà e mostrata stretchata per mancanza di informazioni.. grazie!

  7. #7
    Originariamente inviato da VisRoboris
    ahn...quindi l'immagine viene scaricata a metà e mostrata stretchata per mancanza di informazioni.. grazie!
    Non ho detto questo, la vedrai comunque come prima.

  8. #8
    beh.. almeno risolvo un problema

  9. #9
    Risolto, c'erano ancora due problemi:
    1: la dimensione del canvas non era specificata nella pagina in html, quindi presumibilmente ha assunto una dimensione di default che è stata cambiata poi dal foglio di stile css (che utilizzavo per impostarne la dimensione). Ho risolto spostando la definizione delle proprietà width e height dal css al tag in html
    2: la funzione context.drawImage disegnava con qualche opzione strana, che ho sistemato specificando anche gli argomenti width e height.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.