标签: png

有没有办法在下载之前区分 APNG 和 PNG 图像?

我检查了http header,它们的内容类型都是image/png。我需要根据图像是 PNG 还是 APNG 进行不同的处理,比如如果是 PNG,则直接显示它。如果是 APNG,则显示第一帧,并且仅在用户点击图像时才开始下载整个图像。

png ios apng

1
推荐指数
1
解决办法
1829
查看次数

Odoo 10,上传文件

在odoo 10中,是否可以以给定模型的形式上传文件?自定义模块的用户有一个从客户那里收到的物品列表,并且他需要这些物品的发票。我想这些文件是pdf文件,但不一定(但我可以告诉上传pdf文件,只有当这很简单......)。

问题是,有时,在其他技术中,文件已上传,但在下载时无法读取(某种损坏)。所以我真的需要知道如何以最简单和正确的方式做到这一点。

十分感谢你的帮助。

pdf upload png file odoo-10

1
推荐指数
1
解决办法
4689
查看次数

Qt:以预期的压缩格式保存图像

我正在使用UIQt项目并保存图像文件QML。以下是我所做的

auto screenshot = quick_item->grabToImage();
screenshot->saveToFile("/somepath/filename.jpeg");
// OR sometimes use like png like
screenshot->saveToFile("/somepath/filename.png");
Run Code Online (Sandbox Code Playgroud)

这在所有平台上都表现得非常好。我打开文件,图像按预期保存。

现在我的问题是:
我刚刚提到.jpeg作为文件扩展名,同时将文件名作为参数提供到saveToFile. 这可行,但是,我是否需要使用它QImageWriter来确保图像实际上以jpeg/png格式压缩?

当它是有损压缩时会发生什么jpeg
如果我想在android中控制有损压缩,我可以做一个,image.compress(CompressFormat.JPEG, 80, stream)其中80是压缩质量的百分比

qt png jpeg image-compression qml

1
推荐指数
1
解决办法
2157
查看次数

将 SVG 转换为 PNG 时包括字体

我正在尝试生成一些 SVG 并允许我网站的用户将这些 SVG 下载为 PNG。
阅读本文后,我将所有外部图像都包含在下载的 PNG 中。
现在我试图让 PNG 上的字体正确。似乎回答了这个问题,所以我补充说:

<defs>
    <style type="text/css">
        @font-face {
            font-family: Parisienne;
            src: url('data:application/font-woff;charset=utf-8;base64,.....')
        }
    </style>
</defs>
Run Code Online (Sandbox Code Playgroud)

.....base64 编码的 woff2 字体在哪里。然后在文本中使用它,如下所示:

<text x="55" y="55" stroke="red" font-family="Parisienne">Blah</text>
Run Code Online (Sandbox Code Playgroud)

字体在浏览器中正确显示(我没有在我的操作系统上安装它),但是它仍然没有包含在 PNG 中。
我是否必须向我从第一个链接使用的脚本添加一些额外的处理?
谢谢。

--编辑--
我被要求提供一个完整的例子,这里是:

<svg id="generated-svg" class="generated-svg" width="300px" height="500px"
    version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns-xlink="http://www.w3.org/1999/xlink">
  <defs>
    <style type="text/css">
      @font-face {
        font-family: Parisienne;
        src: url('data:application/font-woff;charset=utf-8;base64,.....')
      }
    </style>
  </defs>

  <rect width="300" height="500" fill="#222"/>
  <text x="55" y="55" stroke="red" font-family="Parisienne" font-size="20px">Test text</text>
</svg>
Run Code Online (Sandbox Code Playgroud)

我没有添加 …

javascript fonts svg png

1
推荐指数
1
解决办法
3855
查看次数

如何从头开始完全实现PNG解码器

为了学习目的,我开始研究 PNG 编码/解码库,所以我想手动实现它的每个部分。

我已经花了很长时间了,但现在我有点卡住了。以下是我已经成功实施的事情:

  • 我可以加载 PNG 二进制文件并浏览它的字节
  • 我可以读取元数据的签名和 IHDR 块
  • 我可以读取 IDAT 块并将图像数据连接到缓冲区中
  • 我可以从上述图像数据中读取并解释 zlib 标头

这就是我陷入困境的地方。我隐约知道这里的步骤是:

  • 根据头提取 zlib 压缩数据
  • 找出所使用的过滤方法并“撤消”它们以获取原始数据
  • 如果一切顺利,现在我拥有以下形式的原始 RGB 数据[<R of 1st pixel>, <G of 1st pixel>, <B of 1st pixel>, <R of 2nd pixel>, <G of 2nd pixel>, etc...]

我的问题是:

  • 是否有任何易于理解的实现(也许带有示例)或关于 zlib 提取的指南,因为我发现官方规范很难理解
  • 同一个文件中可以使用多种过滤方法吗?如何弄清楚这些?如何弄清楚这些不同过滤部分的“边界”?
  • 我对最终数据的理解是否正确?Alpha 通道或使用调色板时怎么样?

algorithm png zlib image-processing deflate

1
推荐指数
1
解决办法
2718
查看次数

从桌面到移动设备,画布图像的像素大小不同

嘿,所以我创建了这个网站:http://dst.dstealth.com来帮助使用 html2canvas 从 HTML div 元素自动生成 png 图像。我的 html2canvas 是用静态宽度 n 高度初始化的。

现在,当我在 Chrome 等桌面浏览器上使用该网站时,它会生成并保存尺寸为 876 x 434 像素的图像,这是我想要的输出。

但是当我在 Android chrome 浏览器上执行完全相同的操作时,它会生成超过 2000 x 2000 像素的图像。

我认为设置视口元会有所帮助,但这反而使我的桌面浏览器开始以稍大的分辨率保存图像,因此我现在已在代码中对此进行了注释。

谁能帮助我了解这里发生的情况以及如何确保生成的图像始终为 876 x 434?

size png canvas viewport html2canvas

1
推荐指数
1
解决办法
3125
查看次数

如何恢复由于不正确的 .gitattributes 而损坏的 PNG 文件?

我添加 & 提交 & 推送了几个 PNG 文件到我的 git repo 中,但不幸的是,我有一个不正确的 .gitattributes 文件,如下所示:

* text
# no settings for PNG files
Run Code Online (Sandbox Code Playgroud)

PNG 文件被 git 视为文本文件。现在我无法再打开它们,而且我也丢失了它们的原始副本。有什么办法可以恢复它们吗?谢谢!


更新.gitattributes添加 PNG 文件时已经在 repo 中。这意味着我无法在提交历史记录中找到PNG 文件的良好状态。所有提交都是在 Windows 上进行的。

git png gitattributes

1
推荐指数
1
解决办法
2274
查看次数

如何在 Jupyter Notebook 中显示来自 API 响应的图像?

我在 Jupyter Notebook 中有一个 Azure Maps API 调用,该调用返回 .png 格式的地图图块。该调用效果很好,但我不知道如何将其显示为图像而不是二进制文本。

\n\n

- API 调用:

\n\n
import requests\nfrom ipywidgets import Image\n\nurl = "https://atlas.microsoft.com/map/static/png"\n\nquerystring = {\n    "api-version":"1.0",\n    "subscription-key":"<myRedactedAPIkey>",\n    "layer":"basic",\n    "zoom":"5",\n    "center":"-122.3950336,47.566848",\n    "height":"600",\n    "width":"600",\n    "pins":"default||-121.95066667 45.9135|-121.062 46.707",\n    "format":"png",\n    "path":"ra300||-122.3950336 47.566848"\n}\n\npayload = ""\nheaders = {\n    \'cache-control\': "no-cache"\n    }\n\nresponse = requests.request("GET", url, data=payload, headers=headers, params=querystring)\n\nprint(response.text)\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果是:

\n\n
\xef\xbf\xbdPNG\n\nIHDRX\xef\xbf\xbdf\xef\xbf\xbd\xef\xbf\xbdsRGB\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdgAMA\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbda    pHYs\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdo\xef\xbf\xbdd\xef\xbf\xbd\xef\xbf\xbdIDATx^\xef\xbf\xbd\xef\xbf\xbdwt,K~\xef\xbf\xbd  \xef\xbf\xbd2\xc3\x95YqGg4+\xef\xbf\xbdiGsVgGg5Z\xef\xbf\xbd\xd1\x9c]IT\xef\xbf\xbdRs9\\J\xe4\x88\xa44r$r%\xef\xbf\xbda\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdnv\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd}\xef\xbf\xbd\xef\xbf\xbdw\xcd\xbb\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd{[\xef\xbf\xbdBy\xef\xbf\xbd20U\\\xef\xbf\xbd6\xef\xbf\xbd\xef\xbf\xbd@T"\n\xef\xbf\xbd\xef\xbf\xbd\n\xef\xbf\xbdA\xef\xbf\xbdE\xef\xbf\xbd\xef\xbf\xbd\xd6\xb5\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd|\xef\xbf\xbd%\xdb\xb6\xef\xbf\xbd\xef\xbf\xbdO\xef\xbf\xbdN\xef\xbf\xbd#\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddX\xef\xbf\xbd\xef\xbf\xbdF\xef\xbf\xbd\xef\xbf\xbdY\xef\xbf\xbdp\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdy\xef\xbf\xbdl3\xef\xbf\xbdT\xef\xbf\xbd8;\xef\xbf\xbdY\xef\xbf\xbdp\xef\xbf\xbdO\xd2\x89#\xef\xbf\xbd\xd5\xbe8\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdyf\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd+5.\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd@0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdq\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdJ\xde\x8c\xef\xbf\xbdk\xef\xbf\xbd\xef\xbf\xbd(\xef\xbf\xbd5\xef\xbf\xbd\xd0\x9e\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdu\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdgBl\xef\xbf\xbd=\xef\xbf\xbdE\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd@\xef\xbf\xbdJ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdm=f\xef\xbf\xbdk&h\xef\xbf\xbd\xef\xbf\xbd^\xef\xbf\xbd\xef\xbf\xbdZ\xef\xbf\xbd\xef\xbf\xbdMs\xef\xbf\xbd\xef\xbf\xbd\xcc\x8a\\\xef\xbf\xbdJ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdif\xef\xbf\xbd\xef\xbf\xbdC\xef\xbf\xbd\xef\xbf\xbd:2_ <etc.>\n
Run Code Online (Sandbox Code Playgroud)\n\n

想:

\n\n

在此输入图像描述

\n\n

有什么建议吗?谢谢。

\n\n

EDIT2:这是有效的查询。感谢大家的帮助。

\n\n
import requests\nfrom IPython.display import Image, display\n\nurl = "https://atlas.microsoft.com/map/static/png"\npayload = ""\nquerystring = {\n        "api-version":"1.0",\n        "subscription-key":"<myApiKeyRedacted>",\n …
Run Code Online (Sandbox Code Playgroud)

png image jupyter-notebook ipywidgets azure-maps

1
推荐指数
1
解决办法
3653
查看次数

为什么webpack将require('path to img.png')转换为base64?

我有一个聊天记录和一个存储所有历史记录的 JSON 文件。所有图像/视频/音频链接到 require(\'媒体路径\')。

\n\n

然而,由于某种原因,当使用 vue-cli-service 或 vue-cli-service 构建时,webpack 会跳过我用于表情符号的图像,不将其包含在 dist 文件夹中,而是将其转换为 base64 字符串。

\n\n

JSON 看起来像这样:

\n\n
          { type: \'emoji\', author: `me`, data: { src: require(\'../../Media/img/smiling-face.png\') } },\n          { type: \'text\', author: `me`, data: { text: `Do you read me...`, meta: \'\xe2\x9c\x93\xe2\x9c\x93 Read\' } },\n          { type: \'image\', author: `support`, data: { src: require(\'../../Media/img/2.gif\'), meta: \'\xe2\x9c\x93\xe2\x9c\x93 Read\' } },\n          { type: \'image\', author: `me`, data: { src: require(\'../../Media/img/1.jpg\'), meta: \'\xe2\x9c\x93\xe2\x9c\x93 Read\' } },\n
Run Code Online (Sandbox Code Playgroud)\n\n

由于某种原因,我的 Emoji 类型消息被转换为 base64,并且 …

base64 png json webpack vue-cli

1
推荐指数
1
解决办法
1683
查看次数

使用 python 每页多个 png/pdf

我有一组图像,已另存为 .png 和 .pdf。我想知道是否有办法将 png 或 pdf 组合在一起,这样我就可以每页有多个。我知道如何使用 PdfFileMerger() 将多个 pdf 合并在一起,但这只会在每页放置一个项目。有什么办法可以做到这一点吗?我有 pdf 和 png,所以无论我需要使用哪一个都可以。

我基本上想做类似的事情:

获取 image1.png、image2.png、image3.png 和 image4.png 并创建如下内容:

输出文件1:

-----------------------------
              |
              |
image1.png    | image2.png
              |
              |
-----------------------------
              |
              |
image3.png    | image4.png
              |
              |
-----------------------------
Run Code Online (Sandbox Code Playgroud)

我真的很感激!

python pdf png

1
推荐指数
1
解决办法
2767
查看次数