1. 程式人生 > >Canvas-drawImage 繪製圖片模糊問題

Canvas-drawImage 繪製圖片模糊問題

最近遇到這樣的問題,使用canvas輸出圖片,圖片比canvas區域大,尺寸限制之後反而變得特別模糊:


程式碼:

        var c = document.getElementById("myimage");//canvas的id
        var ctx=c.getContext("2d");
        var img=new Image();
        img.src = 圖片地址;
        img.addEventListener('load',imgin);
        function imgin(){
            c.width = $(window).width();
            c.height = $(window).width()*img.height/img.width;
            clearInterval(m);
            ctx.clearRect(0,0,c.width,c.height);
            ctx.drawImage(img,0,0,c.width,c.height);
        }
        $(window).resize(function(){
            imgin();
        });

解決:先讓圖片以原先尺寸呈現,再用css限制:

var c = document.getElementById("myimage");<span style="font-family: Arial, Helvetica, sans-serif;">//canvas的id</span>
        var ctx=c.getContext("2d");
        var img=new Image();
        img.src = ...;//<span style="font-family: Arial, Helvetica, sans-serif;">圖片地址;</span>
        img.addEventListener('load',imgin);
        function imgin(){
          // c.width = $(window).width();
          // c.height = $(window).width()*img.height/img.width;
            c.width = img.width;//////////重點
            c.height = img.height;<//////////重點
            clearInterval(m);
            ctx.clearRect(0,0,c.width,c.height);
            ctx.drawImage(img,0,0,c.width,c.height);
            c.style.width = '100%';//////////重點
        }
        $(window).resize(function(){
            imgin();
        });
效果:


相關推薦

Canvas-drawImage 繪製圖片模糊問題

最近遇到這樣的問題,使用canvas輸出圖片,圖片比canvas區域大,尺寸限制之後反而變得特別模糊: 程式碼: var c = document.getElementById("myimage");//canvas的id var ctx=

canvas drawable 繪製圖片時鐘

文章目錄 1、功能介紹 2、檔案結構 3、xml 檔案 4、MainActivity.java檔案 5、自定義的view 檔案

【HTML】Canvas(3)-繪製圖片

開發遊戲的時候,遊戲中的地圖、背景、任務、物品等都是由圖片組成的,這次我們來談談在canvas中如何操作圖片吧。        canvas中提供了drawImage函式和putImageData函式來繪製圖片。        drawImage()函式有3種函式原型,語法

C# 解決DrawImage繪製圖片拉伸產生漸變

方法一: ImageAttributes ImgAtt = new ImageAttributes(); ;                 ImgAtt.SetWrapMode(System.Drawing.Drawing2D.WrapMode.TileFlipXY)

自定義View起步:Canvas繪製圖片

          在前面的章節中,我們已經介紹了Canvas的一些基本操作,今天我們繼續講解,Canvas類的用法,可見這個類在自定義View中是多麼的重要。今天我們來著重介紹一下如何繪製圖片和文字。在這一章節學習之後我們基本上對於一些簡單的自定義View就可以搞定了。但

canvas反轉繪製圖片

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html

Canvas 繪製圖片(drawImage())

demo.html:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</ti

Canvas 在高清屏下繪製圖片模糊的解決方法

問題: 用canvas繪製圖片的時候會模糊,但是用img顯示的時候就不會,canvas和img的大小是相同的  至於為什麼會變模糊,這和瀏覽器處理 canvas 的方式有關,相關的文章可以參考這篇 High DPI Canvas,這裡不作深入介紹。 下面是相關的程式碼:

小程式Canvas繪製圖片太大,自動閃退,安卓會有crash問題

問題說明; 目前小程式Canvas版本還有不少bug,效能較低。 對於圖片太大使用ctx.drawImage(imgpath, 0, 0, width, height, 0, 0, tempWidth, tempHeight); 方法會出現閃退或者黑屏。 當canvas尺寸過大,比如大於2000px以上

canvas 2.0 圖片繪製

繪製圖片drawImage 2013.02.21 by 十年燈·一條評論 本文屬於《html5 Canvas畫圖系列教程》 這裡的繪製圖片是指把一張現成的圖片,繪製到Canvas上面。 有的人可能就有疑問了,既然是現成的圖片,那幹嘛用canvas來繪製,直接用img標籤展現出來不就行了

CANVAS實現圖片模糊(處理庫StackBlur.js)

之前解決一些瀏覽器不支援CSS濾鏡模糊圖片,用的方法是SVG模糊濾鏡,但用SVG模糊濾鏡,圖片大小不好控制,每次都是邊測試邊調整寬高 正好現在做的一個頁面的要求是,一張圖片,根據訪問者來顯示其狀態,沒有與此條動態互動的使用者看到的圖片是模糊的,點贊或評論後才可以見到不模糊的

Canvas圖片模糊效果(學習筆記)

Canvas圖片模糊效果學習視訊:http://www.imooc.com/learn/601 Demo和學習筆記 index.html <!DOCTYPE html> <html> <head> <meta charset="U

drawImage()方法繪製圖片不顯示的問題

canvas有個很強大的api是drawImage()(w3c): 他的主要功能就是繪製圖片、視訊,甚至其他畫布等。 問題: 慕名趕來,卻一腳踩空,低頭一看,地上一個大坑。 事情是這樣的,在我看完w3c的介紹和很有說服力和教學力的demo後,本著實踐出真知的思想決

canvas圖片模糊&馬賽克

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"

小程式利用Canvas繪製圖片和豎排文字

閒暇時間抽個空寫了個三國殺武將手冊的小程式,中間有個需求設計的是合成武將面板圖、豎排的武將姓名、以及小程式碼,然後提供儲存圖片到相簿,最終讓使用者可以分享到朋友圈或其他平臺。合成圖片應該按照 Canvas 的文件來做都沒什麼問題,主要是有個豎排文字的需求,這裡和大家分享一

基於canvas實現波浪式繪製圖片

寫在最前 本次的分享是一個基於canvas的更新圖片特效實現。其中主要涉及canvas中getImageData()、putImageData()、toDataURL()方法的使用。效果請看下面。 歡迎關注我的部落格,不定期更新中—— PS:請在本地伺服器中開啟頁面,因谷歌瀏覽器中會有跨域問題,如需node

HTML5 canvas圖形繪製基礎(矩形,線條,漸變色,圓形,圖片,多邊形)

<!DOCTYOE html> <html>    <head>    <meta charset="utf-8">    <style type="text/css">    div{    margin-lef

09、canvas標籤之繪製圖片與設定背景

繪製圖片圖片預載入,獲取圖片檔案    .onload中呼叫    .drawImage(img,x,y,w,h);繪製圖片(圖片,座標x,座標y,寬度,高度)設定背景    .createPatte

canvas效能-drawImage渲染圖片

# canvas效能-繪製圖片 [TOC] ## canvas繪製圖片 一般我們繪製圖片會用到的方法是`drawImage`和`putImageData`,還有作為測試環境使用的`createPattern` ### drawImage 描述: 使用方式: ```javascript ctx.d

(轉)第03節:在Canvas上插入圖片並設置旋轉屬性

doctype script border wid bsp viewport 設置 css樣式 png 我們已經學會了在Canvas上畫簡單的圖形,這節我們就在Canvas上加一張圖片。用到fabric.Image對象把圖片添加到Canvas上。 HTML文件:為了效果更好