<p>J'ai un png de 240x157 et la taille du div est de 120x88</p><p>J'ai donc créé une toile de 240x157 et collé le png. </p><p>La taille du div est plus petite que celle du png, mais le div a une barre de défilement et je peux utiliser la barre de déplacement pour voir l'image entière. C'est parfait. </p><p><code></code><code></code></p>
<p><br /></p>
<pre class="brush:js;toolbar:false;">var ctx = $('canvas')[0].getContext('2d');
console.log("test")
var chara = nouvelle image();
chara.src = "https://dl.dropbox.com/s/yr8ehzbdwm0csc7/Madeira_-_Entrance_to_Town%2C_c._1900.jpg?dl=0";
chara.onload = () =>
ctx.clearRect(0, 0,240,157);
ctx.drawImage(chara,0,0,240,157);
}</pré>
<pre class="brush:css;toolbar:false;">#whole{
bordure : 1 px solide ;
largeur : 120 px ;
hauteur : 78 px ;
débordement : défilement ;
}</pré>
<pre class="brush:html;toolbar:false;"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"> ;</script>
<div id="entier">
<id de toile="test" width="240px" height="157px"></canvas>
</div></pré>
<p><br /></p>
<p>Mon but ultime est de changer l'échelle par l'utilisateur, et lorsque l'image est plus grande que le div, une barre de défilement apparaîtra, comme Photoshop, etc.
Vous avez oublié de redimensionner le canevas et de définir overflow:auto pour que la barre de défilement disparaisse :