cuốn sách gpt4 ai đã làm

android — Đặt hình ảnh trên Canvas JS

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 08:56:21 26 4
mua khóa gpt4 Nike

tôi ở đây html Nó chứa nội dung sau:

                

hiện hữu css thượng đẳng:

#MarkingCanvas { chiều rộng: 100%; màu nền: #7986CB; chiều cao: 96%;
#MarkingImage { vị trí: tuyệt đối }

hiện hữu js thượng đẳng:

hàm LoadImage()
{
var markImage = Hình ảnh mới();

markImage.addEventListener('load', function()
{
m_imageWidth = this.naturalWidth;
m_imageHeight = this.naturalHeight;

m_markingCanvasContext.drawImage(markingImage, 0, 0, m_imageWidth, m_imageHeight);
});
markImage.src = 'PICT0001.JPG';
}

Vấn đề là đầu ra này kéo dài hình ảnh và chất lượng của nó trở nên rất kém (xem phần đính kèm "Bản gốc" và "Kết quả"). Hình ảnh gốc

Hình ảnh kết quả

Khi tôi gỡ lỗi, tôi có thể thấy kích thước của Canvas của mình là:

Chiều rộng - 1410Chiều cao - 775

Nếu kích thước hình ảnh của tôi là:

Chiều rộng - 551Chiều cao - 335

Vì vậy, câu hỏi của tôi là: tại sao hình ảnh không được đặt ở kích thước ban đầu? Ý tôi là, có rất nhiều chỗ trên Canvas. Ngoài ra, tại sao hình ảnh bị kéo dài và kết quả có chất lượng kém. Có vẻ như nó vượt quá kích thước của Canvas.

Tôi đang thiếu gì ở đây?

câu trả lời hay nhất

Bạn cần thiết lập động chiều rộng và chiều cao của Canvas dựa trên chiều rộng và chiều cao của cửa sổ trình duyệt. Ngoài ra, không cần sử dụng hình ảnh chiều rộng tự nhiên/chiều cao tự nhiên.

var m_markingCanvas = document.getElementById('MarkingCanvas');
var m_markingCanvasContext = m_markingCanvas.getContext('2d');

// thiết lập chiều rộng và chiều cao canvas một cách linh hoạt
m_markingCanvas.width = window.innerWidth;
m_markingCanvas.height = window.innerHeight;

hàm LoadImage() {
var markImage = Hình ảnh mới();
markImage.addEventListener('load', function() {
m_markingCanvasContext.drawImage(this, 0, 0);
});
markImage.src = '/image/a3Wpy.jpg';
}
LoadImage();

Về javascript - đưa hình ảnh lên Canvas JS, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/43096506/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress