Gorąco polecam nie używając przeskalowany obraz, jeśli mają na celu uzyskać ostre i solidne wyniki z tłem, które jest powtarzane houndreds czasu. Oto miły, w 100% programowy sposób na to, używając JS i Canvas. Cały blok JS, jak opisano tutaj, wykonuje około pół milisekundy.
Oto jsFiddle
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var w = c.getAttribute('width');
var h = c.getAttribute('height');
var color = c.getAttribute('data-color');
ctx.rect(-1, -1, ++w, ++h);
ctx.lineWidth = 1;
ctx.strokeStyle = color;
ctx.stroke();
var body = document.getElementsByTagName('body')[0];
body.style.backgroundImage = 'url(' + c.toDataURL("image/png") + ')';
i HTML jest po prostu tak:
<canvas id="myCanvas" width="20" height="20" data-color="#666666" style="display:none">Your browser does not support the HTML5 canvas tag.</canvas>
Wszystko, co musisz zrobić, to echo szerokość i wysokość, które wa do tego tagu płótnie (najlepiej przy użyciu od strony serwera) i wszystko zostanie wykonane automatycznie automatycznie.
Pozwolę sobie wyjaśnić: ctx.rect(-1, -1, ++w, ++h);
Przyjmujemy żądaną szerokość i wysokość i wstawiamy je do zmiennych, a następnie, podczas malowania naszego prostokąta chcemy, aby szerokość zaczynała się od [-1, -1]
coord, tak, że nie mamy lewej ani górnej obramowanie pomalowane (nie jest nam potrzebne, jeśli chcemy, aby nasz wzór układał się niecekowicie), a ++w
i ++h
zwiększają szerokość i wysokość prostokąta o jeden piksel, aby wyjść poza granice płótna i pozbawić tych dwóch niepotrzebnych granic.
Spróbuj zmienić width
i height
w znaczniku `canvas`` w skrzypce, którą stworzyłem i zobacz, czy podoba ci się wyjście.
W ten sposób możesz kontrolować szerokość linii i jej kolor.
Nie jestem pewien, czy rozumiem, o co prosisz? –
co chcesz osiągnąć? Czy możesz pokazać coś w rodzaju makiety? – meskobalazs
Krótko mówiąc, chcesz przyciąć/przyciąć obraz tła? – Nit