1. 程式人生 > >canvas繪圖在高清屏顯示模糊

canvas繪圖在高清屏顯示模糊

問題:canvas在高清屏顯示模糊

前幾天在做PDF預覽時(使用mozilla的pdf.js),發現PDF文字在canvas中顯示非常模糊,在網上搜出來的中文結果都沒有這方面相關的,後面用英文搜尋到了原因,因為我測試用的是retina屏。立即用普通顯示器上試了一下,表現果然是正常的。

分析

裝置畫素比 = 物理畫素 / 裝置獨立畫素dip
canvas元素依賴於裝置畫素比,在retina屏中裝置畫素比是2,意味著寬度為100pxcanvas,需要200px的填充才會清晰地顯示。

解決方法

既然是高清屏的原因,那麼只要對高清屏做下適配就OK啦。

程式碼

// 獲取裝置畫素比
var
PIXEL_RATIO = (function () { var ctx = document.createElement('canvas').getContext('2d'), dpr = window.devicePixelRatio || 1, bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1
; return dpr / bsr; })(); var canvasWidth = 1000, canvasHeight = 500; // 適配高清屏,canvas內容的寬高是實際的寬高的PIXEL_RATIO倍 canvas.width = canvasWidth * PIXEL_RATIO; canvas.height = canvasHeight * PIXEL_RATIO; canvas.style.width = canvasWidth + 'px'; canvas.style.height = canvasHeight + 'px'; // 縮放繪圖 context.setTransform(PIXEL_RATIO, 0
, 0, PIXEL_RATIO, 0, 0);

相關推薦

canvas繪圖顯示模糊

問題:canvas在高清屏顯示模糊 前幾天在做PDF預覽時(使用mozilla的pdf.js),發現PDF文字在canvas中顯示非常模糊,在網上搜出來的中文結果都沒有這方面相關的,後面用英文搜尋到了

Canvas下繪製圖片變模糊的解決方法

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

解決 canvas 繪圖中的模糊問題

解決 canvas 繪圖在高清屏中的模糊問題 為什麼模糊 我們知道,CSS 畫素是一個抽象單位(1 px),瀏覽器根據某種規則將 css 畫素轉化為螢幕需要的實際畫素值。 在高清屏之前,螢幕上顯示一個畫素點需要 1 x 1 個 css 畫素。高清屏出現後,同樣大小的螢幕上要顯示一個點,就需要 n x 1

Egret4.1.0的文字顯示效果設定

用過Egret4.0.3的人都知道,文字顯示有點模糊的問題。在論壇上查了資料,回答是4.1.0會進行修復。所以官方一升級引擎,就趕緊對專案進行升級了。 Egret Engine 4.1.0 2017-05-23 更新日誌 命令列

移動端、多適配方案

dem ios7 scale gif java lec pixel pix 內網地址 背景 開發移動端H5頁面面對不同分辨率的手機面對不同屏幕尺寸的手機 視覺稿 在前端開發之前,視覺MM會給我們一個psd文件,稱之為視覺稿。 對於移動端開發而言,為了做到頁面高清的效果,視覺

基於FPGA的HDMI顯示接口驅動

title multi 每一個 邏輯 影像 zed class min 先來   HDMI是(High Definition Multimedia Interface)的縮寫,意思是高清晰度多媒體接口,是一種數字化視頻/音頻接口技術,適合影像傳輸的專用型數字化接口,可同時傳

在一個沒有固定寬的容器中,為什麽設置position:absolute後就可以全顯示了?

RM pan absolute 瀏覽器 容器 window posit 繼承 nbsp 此場景適用於移動端百分比布局,背景全屏顯示。 在一個沒有固定寬高的容器中設置背景,想要背景全屏顯示,設置寬高100%後還需設置position:absolut; 原因: absolute

淺談顯示接口RGB、LVDS、MIPI、eDP、HDMI、mini-LVDS、V-By-One(轉載)

morn 設備 宋體 解決 產品 key one txt targe 淺談高清顯示接口RGB、LVDS、MIPI、eDP、HDMI、mini-LVDS、V-By-One 標簽: hdmi轉edp rgb轉edp lvds轉edp lvds轉v-by-one

軟體哪個好?大神教你快速錄製視訊

  現在錄遊戲視訊的自媒體很多,像之前大火的蛋蛋解說還有B站上熱門的吃雞遊戲UP主大忽悠等等~這些自媒體的視訊素材就是來自於錄製的遊戲視訊~其實錄制高清的視訊,用對工具就行了,不光是可以錄製電腦上的遊戲視訊,手機上也可以的。大家可以試試下面說的這款螢幕錄影工具,裡面除了有常規的錄製功能外,還有挺多好用的快

用什麼軟體錄最好?錄製視訊無水印,簡單幾步就學會!

用什麼軟體錄屏最好?如何快速錄製一個高清無水印的視訊? 現在很多人都會需要錄製微課視訊、遊戲視訊解說、網路線上直播錄屏等等,其實用超級捕快,就能非常簡單快速地錄製一個1080P全高清且無水印的視訊。 錄製經驗分享: 第一步:選擇錄製的視訊格式 開啟軟體後,選擇“電腦螢幕錄影”功能。

德導航顯示的問題

高德地圖顯示白屏問題答疑: 對於導航白屏,語音播報啥的都好著呢,但是就是地圖上不顯示。各種原因都想了始終沒有想到我之前關閉了硬體加速,真不知原來導航和硬體加速有關係。 清單檔案中把硬體加速開啟:android:hardwareAccelerated="true"  就好了

win10 DPI 高分 解決模糊問題的另外一種方法

    本人使用的是 win10 1809的版本      使用高解析度的顯示器時,發現開啟部分win7軟體很模糊,分分鐘亮瞎眼,在網上找遍了相關的設定方法(比如使用字型修改軟體,使用修改DPI修改軟體等),沒有得到我要的理想效果。最後發現還是把軟體設定為100%的縮放比,

詳解rem佈局-利用rem佈局實現移動端顯示

目錄 一、初探rem佈局 1.1 rem是什麼? rem是CSS3新增的一個相對單位(root em,根em)。這個單位與em有什麼區別呢?區別在於使用rem為元素設定字型大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對

R語言繪圖儲存、以及顏色系統

由於R語言基礎作圖部分內容簡單直接,但引數繁多,因此這裡不做系統介紹,只挑出幾個點來講一講。主要介紹R中的顏色系統。 目錄 一個作圖示例 圖片的高清儲存 par函式使用技巧 顏色系統 作圖使用中文亂碼 基礎作圖和數學公式的演示 一個作圖示

Android Canvas失效

自定義控制元件時經常用到Canvas,畫新的東西之前需要先清除畫布內容,人臉識別專案中需要準確畫出當前人臉位置,清空上一幀位置。 關於清除畫布內容網上有兩種非常流行的方法: 方法一: mCanvas.drawColor(Color.TRANSPARENT,

Barcode Professional for ASP.NET使用教程:如何在HTML支援的DPI範圍內顯示條碼

我們知道高質量的條碼更能達到我們的目的,然而影象DPI與影象的大小成正比,即DPI越高,圖片檔案越大。 可能你將600DPI的圖片顯示在HTML上很容易,然而你會發現圖片佔滿了整個頁面,因為大多數的HTML顯示解析度為96DPI。那麼今天將分享用Barcode Profe

移動端適配方案(解決圖片模糊問題、1px細線問題)

分享 統一 允許 傳統 頁面 相等 ini http 解決 幹貨儲備: 物理像素、設備獨立像素和設備像素比 在CSS中我們一般使用px作為單位,需要註意的是,CSS樣式裏面的px和物理像素並不是相等的。CSS中的像素只是一個抽象的單位,在不同的設備或不同的環境中,CSS中1

Bandicam(班迪錄視頻錄制工具

視頻 高清視頻 nbsp 工具 技術分享 錄像 bubuko https png Bandicam(班迪錄屏)簡單好用的錄屏幕,錄遊戲,錄視頻的功能強大的屏幕錄像軟件,比起其他軟件其性能更加卓越。 與其他軟件相比,用Bandicam錄制的視頻大小更小, 不僅保證原文件的質量

模糊的CAD圖紙轉換成彩色SVG格式如何進行?

操作 怎麽 直接 官網 接下來 打開 選項 網上 就是 將模糊的CAD圖紙轉換成高清彩色SVG格式如何進行?CAD圖紙文件是需要使用到專門的看圖軟件才能夠將其進行打開查看的,一般為了方便將其進行傳輸等操作都會需要進行的操作就是將其進行的是格式間的轉換操作,具體應該怎麽樣進行

Python IDLE 增加功能

none ini oge python key ngs tex sta logs 保存如下代碼到 ClearWindow.py """ Clear Window Extension Version: 0.2 Author: Roger D. Serwy