如何根据文件大小限制确定png尺寸?

2023-11-23

如果应用程序的业务逻辑规定 24 位 PNG 永远不能超过 250KB,那么是否可以预测图像的最大宽度和高度,并且仍然符合 250KB 的要求?

由于有很多颜色深度、alpha 通道等变量……有可能知道这一点吗?还是为了更接近?


这是可能的,但可能没有用。 PNG 的 zlib 压缩的最大压缩比为 1032:1(对于相同字节值的长序列)。因此,压缩后的 250 KB(忽略包装器等)大约是未压缩的 250 MB。对于方形图像,这将接近 10,000 x 10,000 像素(每像素 3 个字节)。

请注意,这里的另一个答案莫名其妙地假设minimum压缩给出了minimum像素数,例如500 x 333。由于问题询问“图像可能的最大宽度和高度”,因此该答案没有用。显然 10,000 x 10,000 大于 500 x 333。

Update:

基于最小 PNG 文件的精确计算得出 24 位像素的最大数量(压缩数据中存储的每个像素三个字节),作为文件大小的函数n bytes:

floor(((n - 77) * 8 - 1) / 2) * 86 + 1

因此,对于 250*1024 = 256,000 字节,我们得到 88,037,427 像素。对于方形图像,大约为 9383 x 9383 像素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据文件大小限制确定png尺寸? 的相关文章

  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • 如何使用 zbar 获取图像上检测到的二维码的 x、y 位置?

    我在下图的两个二维码中编码了数字1639 可下载 here https i stack imgur com c0FVK jpg 我打印了它 拍了一张照片并尝试检测它 import zbar from PIL import Image sca
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 为什么这个基本的 imagejpeg() resizer 返回黑色图像?

    EDIT 感谢您的所有回答 特别是 Mailerdaimon 他注意到我没有在imagecopyresampled功能 我不再得到黑色图像 但我仍然得到一些黑色部分 所以我认为我的比例公式应该更新 如果我上传横向图像 新图像的高度小于 17
  • 训练 tesseract 与 iPhone 一起使用

    我正在尝试在我的 iPhone 应用程序中使用 tesseract 2 04 只想检测数字 我在这里所做的首先是使用这篇文章交叉编译 tesseract 以生成 lib 文件http robertcarlsen net 2009 07 15
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • 估计 libGD 操作所需的内存

    在尝试使用 libGD 在 PHP 中调整图像大小之前 我想检查是否有足够的内存可用于执行该操作 因为 内存不足 会完全终止 PHP 进程并且无法捕获 我的想法是 原始图像和新图像中的每个像素 RGBA 需要 4 字节内存 check av
  • 压缩 webpack 插件

    我正在尝试弄清楚如何正确使用webpack html 插件与压缩插件 后者的文档有点匮乏 我的 webpack 配置声明 output filename js name hash js 最后运行压缩插件 new CompressionPlu
  • 从命令行减少 PNG 文件的位深度

    我可以从 CLI 执行什么命令或一系列命令来递归遍历目录树并将该树中所有 PNG 文件的位深度从 24bpp 减少到 16bpp 命令应该保留 alpha 层并且不应该增加 PNG 文件的大小 事实上减少会更好 我有一个基于 OSX 的系统
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • Libpng、调色板 png 是否带 alpha?

    如何知道调色板 png 是否带有 alpha 我获取有关图像的信息png get IHDR 之后我看看color type PNG COLOR TYPE PALETTE 但我找不到如何知道这个 png 图像是否有 alpha 通道 PNG
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • 运行时错误:大小不匹配,m1:[4 x 3136],m2:[64 x 5]位于c:\ a \ w \ 1 \ s \ tmp_conda_3.7_1

    我使用 python 3 当我插入变换随机裁剪大小 224 时 它会给出未匹配错误 这是我的代码 https github com kajasumanie medical plant classification blob master i
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • 是否可以进一步压缩 Base64 PNG 字符串?

    我有一个 PNG 图像并获得了它的 Base64 PNG 字符串表示形式 它仍然很大 我想知道是否可以进一步压缩它 这可能吗 背景 我正在使用 Selenium 2 Java 创建当前网页的屏幕截图 将其转换为 base64 字符串并将该字
  • 图像分析-光纤识别

    我是图像分析新手 您知道如何以仅获取纤维的方式对该图像进行二值化吗 我尝试过不同的阈值技术等 但没有成功 我不介意应该使用什么工具 但我更喜欢 NET or Matlab PS 我不知道该把答案放在哪里 所以我把它放在StackOverfl
  • C++ Boost 和 Lzma 解压缩

    我正在尝试使用解压缩 7z 或 xz 或 lzma 文件 Linux 平台上的 boost 库 1 67 0 使用以下代码 vector

随机推荐

  • 甜甜圈缓存是否可以与 ASP.NET MVC 一起正常工作?

    通过甜甜圈缓存 我指的是斯科特 格思里的博客文章这太棒了 有谁知道这是否正常 请注意 从 MVC 2 0 开始 此技术不再有效 这很糟糕
  • Sql HierarchyId 如何获取最后的后代?

    Using t sql 等级制度我如何获得所有没有子项的行 即最后的后代 假设我的表结构如下 Id Name HierarchyId 并且有这些行 1 Craig 2 Steve 1 3 John 1 1 4 Sam 2 5 Matt 2
  • 如何在 woocommerce 中添加自定义运费?

    我想使用 woocommerce 中的代码添加运费 这是我的要求 如果我的发货国家 地区是澳大利亚 则运费会有所不同 澳大利亚境外的运费也会有所不同 现在 如果我的发货国家 地区是澳大利亚并且 1 if order value is lt
  • Dynamic_cast 返回 NULL 但它不应该返回

    我有以下类层次结构 class IStorage Q DECLARE INTERFACE IStorage ch gorrion smssender IStorage 1 0 class ISQLiteStorage public ISto
  • 如何在Xcode中替换模板标题中的公司名称?

    当 Xcode 创建一个新文件时 文件头中总是有这样的内容 Copyright 2009 MyCompanyName All rights reserved 我怎样才能改变这一点 You can change it in Xcode pro
  • 如何在 sql 中使用的 linq 中使用 Left join?

    如何在编写 SQL 查询的 Linq 中使用 Left join select p Name p Family E EmployTypecode E employtypeName E EmplytyppeTye from personnel
  • 设置连续数字的格式

    我正在尝试使用 Python 格式化整数列表 但在实现我想要的效果时遇到了一些困难 输入是整数的排序列表 list 1 2 3 6 8 9 我希望输出是一个如下所示的字符串 outputString 1 3 6 8 9 到目前为止 我所实现
  • Class.forName 似乎仍然有必要

    来自Java 文档 在以前版本的 JDBC 中 要获取连接 您首先必须通过调用 Class forName 方法来初始化 JDBC 驱动程序 在类路径中找到的任何 JDBC 4 0 驱动程序都会自动加载 但是 您必须使用 Class for
  • 在 JavaScript(特别是 NativeScript)中添加全局变量/函数

    我正在学习如何使用 NativeScript 编写应用程序 我相信最好的学习方式就是实践 因此 我正在构建一个基本的应用程序 在此应用程序中 我尝试创建一个可以跨应用程序中的所有视图模型和其他代码访问的函数和变量 为了尝试做到这一点 我想我
  • 在 Mongoose 的 forEach 循环中添加属性

    假设我的 posts 数组中的每个帖子都有两个属性 name 和 number 所以它就像 var posts name hey number 1 name foo number 2 Javascript 允许我在 foreach 循环中更
  • 网络 - 绑定到本地主机

    我有一个关于绑定和连接的一般性问题localhost 我正在使用 TCP 客户端 服务器 在服务器端我执行以下形式的操作 bind localhost 9999 listen 这是在一个名称为例如 的 UNIX 主机上完成的 host1 现
  • 为什么 sp_columns 不返回结果?

    我试图为 StackOverflow 上的另一篇文章 描述 一个表 但是当我运行 sp columns 时 没有显示任何结果或行 sp columns assignee Results A bunch of column headers 我
  • Python - 根据总和对列表进行排序

    我想根据每个内部列表的总和对包含列表的列表进行排序 这是我当前的片段 vectors for i in range 0 10 vectors append generate vector generate vector works crea
  • 当您需要存储(非常)大的数字时该怎么办?

    我正在尝试做一个欧拉计划问题 但它涉及将一个非常大的数字相加 100 使用Java int和long太小了 感谢您的任何建议 Class 大整数看起来这可能就是您正在寻找的
  • 根据 Javascript 中的字符串输入生成唯一编号

    过去我制作了一个函数 可以从字符串生成唯一的 id 数字 今天我发现它并不像应有的那么独特 以前从未见过问题 如今 两个不同的输入会生成相同的 id 数字 我在 Delphi C PHP 和 Javascript 中使用相同的技术来生成相同
  • 突出显示 JTable 的列标题

    我目前正在构建一个小 JTable 并且希望在选择单元格时突出显示列标题 和行标题 行标题部分实际上正在工作 以便更轻松地找到与该单元格相关的名称 这是一张图片 我已经尝试用以下方法切换标题的渲染器 table getTableHeader
  • 在 Prolog 中对大列表进行排序:内存不足

    我正在尝试使用冒泡排序对 prolog 中的 10k 元素列表进行排序 但出现了本地堆栈错误 合并排序似乎是最好的选择 因为对于相同的输入我没有收到任何错误 然而 我真的很想获得一些具有大量输入数据的冒泡排序的运行时间 但我不能 有任何想法
  • Node-MySQL - Query() 方法中的转义与 Mysql.Escape() / Mysql.EscapeId()

    我目前正在使用节点mysql用于将我的应用程序连接到 MySQL 实例的库 在阅读了我发现的其他一些 StackOverflow 问题和文章后 听起来 node mysql 每次都会自动转义不安全字符query 方法被调用 但在一些代码片段
  • 角度服务中的 EventEmitter 是好是坏?

    我正在使用EventEmitter and Output在 Angular 服务中 今天一位同事提到这不是一个好的做法 我找到了这个post提到这是一种不好的做法 似乎主要是个人观点 而这answer提到可以使用它 我找不到任何关于它的官方
  • 如何根据文件大小限制确定png尺寸?

    如果应用程序的业务逻辑规定 24 位 PNG 永远不能超过 250KB 那么是否可以预测图像的最大宽度和高度 并且仍然符合 250KB 的要求 由于有很多颜色深度 alpha 通道等变量 有可能知道这一点吗 还是为了更接近 这是可能的 但可