Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js][html]Canvas skaluje obrazy
Forum PHP.pl > Forum > Po stronie przeglądarki
230005
Jak w temacie - obrazki wstrzykiwane do elementu canvas zostają rozciągnięte bez żadnej ingerencji z mojej strony (kod mootools):

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var element = new Element('img', {
  3. 'src': this.randomElement,
  4. 'styles': {
  5. 'display': 'block',
  6. 'margin': '0 auto'
  7. }
  8. });
  9.  
  10. if(this.useCanvas) {
  11. element.inject(small);
  12. var ctx = tetrisTable.getContext('2d');
  13. ctx.drawImage(element, 0, 0);
  14. }
  15.  
[JAVASCRIPT] pobierz, plaintext


Problemem jest rozmiar elementu canvas - jeśli nie zostanie ostylowany, obrazki nie skalują się. Jednak chciałbym aby przybrał on określony rozmiar. Nadawanie obrazkom z góry narzuconych rozmiarów odpada, ponieważ każdy ma inny rozmiar. Widzicie jakieś wyjście z tej sytuacji?

No więc znalazłem odpowiedź - kiedy wymiary canvas nada się poprzez css, obrazy zostają przeskalowane, kiedy natomiast do elementu canvas dodamy atrybuty, np.

  1.  
  2. <canvas id="canvas" width="300" height="600"></canvas>
  3.  


wszystko gra. Dziwne to, bo w końcu po to jest css, żeby jedno oddzielić od drugiego, ale cóż... Mam nadzieję, że komuś to pomoże.
Fifi209
A to w css nie da się już ustawić width i height ?
erix
Da się, ale canvas jest na tyle specyficznym obiektem, że dzieją się m.in. cyrki, jak ten wspomniany, jeśli nie nadasz wymiarów bezpośrednio w atrybutach.

Zresztą, nie widzę sensu nadawania wymiarów via CSS, skoro płótno jest i tak obsługiwane przez JS (semantycznie, powinien być dodawany dynamicznie, przez skrypt).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.