首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >toDataURL中的默认图像质量是什么?

toDataURL中的默认图像质量是什么?
EN

Stack Overflow用户
提问于 2015-11-24 21:27:31
回答 1查看 922关注 0票数 1

这是文档 for toDataURL

代码语言:javascript
运行
复制
Syntax

canvas.toDataURL(type, encoderOptions);

Parameters

type Optional
    A DOMString indicating the image format. The default type is image/png.

encoderOptions Optional
    A Number between 0 and 1 indicating image quality if the requested type is image/jpeg or image/webp.
    If this argument is anything else, the default value for image quality is used. Other arguments are ignored. 

If this argument is anything else, the default value for image quality is used. Other arguments are ignored.。图像质量的默认值是多少?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 21:40:02

眨眼: JPEG为0.92,WEBP为0.80。

壁虎: 0.92用于JPEG (不支持webp )

我是怎么找到的

我使用toDataURL搜索“https://code.google.com/p/chromium/codesearch

相关代码party/WebKit/Source/core/html/HTMLCanvasElement.cpp&q=toDataURL&sq=package:chromium&l=517

看起来它设置的质量类似于so double quality = UndefinedQualityValue;,其中UndefinedQualityValue;是一个常数-1.0。

沿着呼叫链往下走,我们到达party/WebKit/Source/platform/graphics/ImageBuffer.cpp&sq=package:chromium&l=348&rcl=1448382621

代码语言:javascript
运行
复制
bool ImageDataBuffer::encodeImage(const String& mimeType, const double& quality, Vector<unsigned char>* encodedImage) const
{
    if (mimeType == "image/jpeg") {
        int compressionQuality = JPEGImageEncoder::DefaultCompressionQuality;
        if (quality >= 0.0 && quality <= 1.0)
            compressionQuality = static_cast<int>(quality * 100 + 0.5);
        if (!JPEGImageEncoder::encode(*this, compressionQuality, encodedImage))
            return false;
    } else if (mimeType == "image/webp") {
        int compressionQuality = WEBPImageEncoder::DefaultCompressionQuality;
        if (quality >= 0.0 && quality <= 1.0)
            compressionQuality = static_cast<int>(quality * 100 + 0.5);
        if (!WEBPImageEncoder::encode(*this, compressionQuality, encodedImage))
            return false;
    } else {
        if (!PNGImageEncoder::encode(*this, encodedImage))
            return false;
        ASSERT(mimeType == "image/png");
    }

    return true;
}

其值如下:

  • JPEGImageEncoder::DefaultCompressionQuality = 92 来源
  • WEBPImageEncoder::DefaultCompressionQuality = 80 来源

壁虎

我们可以使用mozilla代码搜索遵循类似的过程,或者只使用谷歌的“壁虎图像编码器”,它将您带到以下值: JPEG: 0.92 来源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33904144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档