Helion Bestsellery

Docker. Niezawodne kontenery produkcyjne. Praktyczne zastosowania. Wydanie III
  • Autor: Sean Kane, Karl Matthias
  • Zniżka: 35%
  • Cena: 87.00 56.55 zł
  • Marka: Helion
  • Status: Dostępna
  • Typ: Książka
  • EAN: 9788328903715
  • ISBN: 978-83-289-0371-5
Dodaj Docker. Niezawodne kontenery produkcyjne. Praktyczne zastosowania. Wydanie III do koszyka

Helion Książka Dnia

Algorytmy w Pythonie. Techniki programowania dla praktyków
  • Autor: Piotr Wróblewski
  • Zniżka: 50%
  • Cena: 119.00 59.50 zł
  • Marka: Helion
  • Status: Dostępna
  • Typ: Książka
  • EAN: 9788328393684
  • ISBN: 978-83-283-9368-4
Dodaj Algorytmy w Pythonie. Techniki programowania dla praktyków do koszyka

createImageBitmap()

[ Leksykon ] [ JavaScript ] [ Metody ] [ canvas ]

createImageBitmap()

[_] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]

createImageBitmap(image)
createImageBitmap(image, options)
createImageBitmap(image, sx, sy, sw, sh)
createImageBitmap(image, sx, sy, sw, sh, options)

 

Przykłady: 

<script>

window.onload = () => {

const canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
image = new Image();
image.src = "dom.jpg";

image.onload = () => {
Promise.all([
// Wytnij dwa obrazy z arkusza obrazu
createImageBitmap(image, 0, 0, 50, 50),
createImageBitmap(image, 50, 0, 50, 50),
createImageBitmap(image, 100, 100, 50, 50),
]).then((obraz) => {
// Narysuj każdy obraz na canvas
ctx.drawImage(obraz[0], 100, 100);
ctx.drawImage(obraz[1], 250, 250);
ctx.drawImage(obraz[2], 0, 0);
});
};

return;

};

</script>

<canvas id="canvas" width="500" height="300"></canvas>

 

<script>

window.onload = () => {

const szer = 300;
const wys = 300;

const canvas = document.getElementById("canvas").getContext("bitmaprenderer");
canvas.width = szer;
canvas.height = wys;

const canvasA = document.getElementById("canvasA");
canvasA.width = szer;
canvasA.height = wys;
const ctxA = canvasA.getContext("2d", { willReadFrequently: true,});

const canvasB = document.getElementById("canvasB");
canvasB.width = szer;
canvasB.height = wys;
const ctxB = canvasB.getContext("2d", { willReadFrequently: true,});

const canvasC = document.getElementById("canvasC");
canvasC.width = szer;
canvasC.height = wys;
const ctxC = canvasC.getContext("2d", { willReadFrequently: true,});

// OffscreenCanvas
const offscreen = new OffscreenCanvas(szer, wys);

offscreen.width = 300;
offscreen.height = 300;

console.log(offscreen.width);
console.log(offscreen.height);

const ctxoff = offscreen.getContext("2d");

var counter = 0;
setInterval( function() {
zadanieCanvas();
counter++;
}, 100);

function zadanieCanvas() {

ctxA.clearRect(0, 0, canvasA.width, canvasA.height);
ctxB.clearRect(0, 0, canvasB.width, canvasB.height);
ctxC.clearRect(0, 0, canvasB.width, canvasB.height);

const obraz2 = ctxoff.createImageData(100, 100);
for (let i = 0; i < obraz2.data.length; i += 4) {
let x = ((i % 400) / 400) * 255;
let y = (Math.ceil(i / 400) / 100) * 255;

obraz2.data[i + 0] = x; // R
obraz2.data[i + 1] = y; // G
obraz2.data[i + 2] = 255 - x; // B
obraz2.data[i + 3] = 255; // A
}

ctxoff.putImageData(obraz2, 0 + counter, 0);

const arr = new Uint8ClampedArray(10_000);

// Wypełnij tablicę wartościami RGBA
for (let i = 0; i < arr.length; i += 4) {
arr[i + 0] = 250; // R
arr[i + 1] = 100; // G
arr[i + 2] = 0; // B
arr[i + 3] = 255; // A
}

// Zainicjuj nowy obiekt ImageData
let obraz = new ImageData(arr, 50);
// Narysuj dane obrazu na canvas
ctxoff.putImageData(obraz, 0, 0 + counter);

if (counter == 200)
{
counter = 0;
}

const obrazX = offscreen.transferToImageBitmap(); // ImageBitmap

Promise.all([
// Wytnij obrazy z arkusza obrazu
createImageBitmap(obrazX, 0, 0, 300, 300),
]).then((obraz) => {
// Narysuj każdy obraz na canvas
ctxA.drawImage(obraz[0], 0, 0);
});

ctxB.drawImage(obrazX, 0, 0);

canvas.transferFromImageBitmap(obrazX);

const imageData2 = ctxB.getImageData(0, 0, 300, 300, { colorSpace: "srgb" });
ctxC.putImageData(imageData2, 0, 0);

obrazX.close();
ctxoff.clearRect(0, 0, offscreen.width, offscreen.height);

}

return;

};

</script>

<canvas id="canvas" width="100" height="100"></canvas>
<canvas id="canvasA" width="100" height="100"></canvas>
<canvas id="canvasB" width="100" height="100"></canvas>
<canvas id="canvasC" width="100" height="100"></canvas>

 

  

Opis:
Metoda globalna createImageBitmap() tworzy bitmapę z danego źródła, opcjonalnie przyciętą tak, aby zawierała tylko część tego źródła. Ta funkcja jest dostępna w Web Workers. Metoda istnieje w zasięgu globalnym zarówno w oknach, jak i w procesach roboczych. Akceptuje wiele różnych źródeł obrazów i zwraca Promise(), które przekształca się w ImageBitmap(). Parametry image - źródło obrazu, którym może być dowolne z poniższych:

HTMLImageElement - 
SVGImageElement - 
HTMLVideoElement - 
HTMLCanvasElement() - Interfejs do manipulowania i prezentacją elementów HTML <canvas>
Blob - 
ImageData - 
ImageBitmap() - reprezentuje obraz bitmapowy, który można narysować canvas bez zbędnych opóźnień
OffscreenCanvas - 

Parametry kolejne: sx - współrzędna x punktu odniesienia prostokąta, z którego ImageBitmap zostanie wyodrębniony, sy - współrzędna y punktu odniesienia prostokąta, z którego ImageBitmap zostanie wyodrębniony, sw - szerokość prostokąta, z którego ImageBitmap zostanie wyodrębniony, wartość ta może być ujemna, sh - wysokość prostokąta, z którego ImageBitmap zostanie wyodrębniony, wartość ta może być ujemna, options - obiekt Opcjonalny! ustawiający opcje wyodrębniania obrazu.

Dostępne opcje to:
imageOrientation - określa, czy obraz powinien być prezentowany w niezmienionej postaci, czy odwrócony w pionie, none - domyślnie albo flipY.
premultiplyAlpha - określa, czy kanały kolorów mapy bitowej powinny być wstępnie pomnożone przez kanał alfa. Jeden z none, premultiply, lub default domyślnie.
colorSpaceConversion - określa, czy obraz powinien być dekodowany przy użyciu konwersji przestrzeni kolorów. none albo default domyślnie. Wartość default wskazuje, że używane jest zachowanie specyficzne dla implementacji,
resizeWidth - długa liczba całkowita wskazująca szerokość wyjściową,
resizeHeight - długa liczba całkowita wskazująca wysokość wyjściową,
resizeQuality - określa algorytm używany do zmiany rozmiaru danych wejściowych w celu dopasowania ich do wymiarów wyjściowych. Jeden z pixelated, low domyślnie, medium lub high.

Wartość zwracana Promise(), który przekształca się w ImageBitmap() obiekt zawierający dane bitmapowe z danego prostokąta.

Zobacz też:
HTMLImageElement - 
SVGImageElement - 
HTMLVideoElement - 
HTMLCanvasElement() - Interfejs do manipulowania i prezentacją elementów HTML <canvas>
Blob - 
ImageData - 
ImageBitmap() - reprezentuje obraz bitmapowy, który można narysować canvas bez zbędnych opóźnień
OffscreenCanvas - 
Web Workers - 

 

Please publish modules in offcanvas position.