在 Delphi 中调整 png 图像大小 - 不正确的 alpha 通道

2024-01-03

我正在调整可能有 Alpha 通道的 png 图像的大小。

一切正常,但有一个例外: 我在透明区域周围得到一些灰色像素。

原始图像没有任何阴影。

有没有办法解决这个问题/解决它?

我正在使用 Gustavo Daud 的 SmoothResize (请参阅第一个答案这个问题 https://stackoverflow.com/questions/2437714/resize-png-image?lq=1),调整 png 图像的大小。

我无法提供我正在使用的代码,因为它不是我编写的,也没有作者的发布许可。


我怀疑这是由两件事引起的:PNG 中有趣的 RGBA 值和天真的调整大小代码。

您需要检查您的 PNG 内容。您正在寻找透明区域中的 RGB 值。尽管透明区域的 Alpha 值为 0,但它们仍然具有 RGB 信息。在你的情况下,我希望透明区域填充黑色 RGB 值。如果简单地完成调整大小,这可能会导致调整大小后出现灰色轮廓。示例:如果代码将 2 个调整像素 (0,0,0,0) 和 (255,255,255,255) 的大小调整为 1 个,会发生什么情况?两个像素各占 50%,结果为 128,128,128,128),即半透明灰色。当您放大例如 x1.5 时,也会发生同样的情况,原始两个像素之间添加的像素将是灰色的。通常这种情况不会发生,因为图像编辑软件足够智能,可以用最近的可见像素的颜色填充这些不可见的像素。

您可以尝试通过用白色(或图像边框上的其他颜色)填充透明区域来“修复”PNG。

另一种方法是使用高级调整大小代码(编写或查找库),这将忽略透明像素 RGB 值(例如,通过从最近的非透明像素获取 RGB)。

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

在 Delphi 中调整 png 图像大小 - 不正确的 alpha 通道 的相关文章

  • 如何将 JSON 字符串转换为图像?

    我有一个将图像转换为 JSON 数组的应用程序 并将其保存到 blob 字段中 function getImage String var memorystream TMemoryStream jsonArray TJSONArray beg
  • 从delphi应用程序调用.net4.0 com服务器后出现错误异常

    我们正在将代码库从 BDS2006 迁移到 Rad Studio XE 我们发现了一些非常奇怪的行为 如果我们在从 Net4 0 中实现的 COM 服务器创建一些对象后进行无效的浮点运算 即除以零 我们不会没有得到正常异常 即 EDivis
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • Delphi中的抽象类

    我正在使用一个具有许多抽象类的组件套件 现在我想应用多态性 但在创建对象时收到错误抽象类 即使我不需要 我是否应该重写所有虚拟方法 有什么解决方法或解决方案吗 为了创建类的实例 您需要重写所有声明为虚拟抽象的方法 即使您不使用它们 如果您确
  • Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

    在我的应用程序 Delphi 中 我需要列出所有 USB 存储设备 这些可以是闪存棒or外部存储驱动器 有一个Jvcl成分JvDriveCombo 并且它有DriveType属性 问题是我是否选择DriveType Fixed那么除了外部驱
  • 查找Delphi项目中的所有编译错误

    我正在对我的 Delphi 项目进行一些重构 我希望能够做出改变 然后看看all项目中因该更改而中断的地方 类似于 Eclipse 列出项目的所有编译错误 在 Java 中 在 Delphi 中 我可以进行更改 然后重新编译我的项目 但编译
  • 在Delphi 7中,为什么我可以给const赋值?

    我将一些 Delphi 代码从一个项目复制到另一个项目 发现它在新项目中无法编译 但在旧项目中可以编译 代码看起来像这样 procedure TForm1 CalculateGP const Price money 0 begin Pric
  • TColorProperty德尔福柏林10.1.2?

    我正在尝试将组件从 Delphi 7 转换为 Delphi Berlin 平面组件 https sourceforge net projects flatstyle https sourceforge net projects flatst
  • 使用项目中的波形文件

    我目前只能通过将波形文件放在已编译的 exe 旁边来播放背景声音 但我实际上想要一个包含波形文件的静态可执行文件 这在Delphi XE2中可能吗 这是我的代码 SndPlaySound Raw wav SND ASYNC or SND L
  • Delphi 流畅的界面

    使用上有什么优点和缺点流畅的界面 http en wikipedia org wiki Fluent interface在德尔福 流畅的界面应该会增加可读性 但我对此有点怀疑one包含很多链式方法的长 LOC 是否存在编译器问题 是否存在任
  • 是否可以声明长度受限且不从 0/1 开始的字符串类型?

    在 Delphi 中 可以声明整数值的子范围 例如 type myInt 2 150 它将 myInt 类型的值限制为 2 到 150 之间的值 但是如果我想限制字符串的长度怎么办 如果我写 type myString string 150
  • 如何用不同的颜色绘制选定的列表框项目?

    是否可以更改 TListBox 中的项目选择焦点颜色和文本颜色 当项目中未启用主题或列表框样式设置为所有者绘制时 项目周围的选择将被涂成蓝色 我相信这是由系统的外观设置全局定义的 我想将所选项目的颜色更改为自定义颜色 举个例子 结果会是这样
  • 如何在iOS的Delphi程序中使用IPv6协议

    我尝试在我的移动程序中使用 IPv6 协议 我的服务器位于 NAT 后面的 LAN 内 在服务器上我使用IP端口3000 我已经组织了从路由器端口 45500 到服务器端口 3000 的虚拟服务器 端口转发 在服务器上 我运行 ipconf
  • 阻止 IDE 自动添加使用单位

    我正在将 Lazarus 项目转移到德尔福西雅图 Lazarus 项目依赖于 40 多个单元 包括控件 并具有多种应用程序 在所有项目的使用条款中 他们使用了以下内容 uses Classes SysUtils Forms Controls
  • CharInSet 不适用于非英文字母?

    我已经将应用程序从 Delphi 2007 更新到 Delphi 2010 一切都很顺利 除了一条编译正常但不起作用的语句 If Edit1 Text 1 in S then ShowMessage Found else ShowMessa
  • 使用 PutBlock 并将字节数组全部设置为零的 EIPHTTPProtocolExceptionPeer 异常

    使用 Delphi XE2 Update 3 我在将零字节块上传到 Azure 时遇到问题 当我说零字节时 我指的是每个元素设置为零的字节数组 不是零长度 例如 var ConInfo TAzureConnectionInfo RespIn
  • 在 Delphi 中淡入 alpha 混合 PNG 表单

    几年前 当 Vista 首次发布时 我曾提出过这个问题 但始终没有解决这个问题 并把它搁置起来 留待以后再考虑 我有一个启动屏幕 我花了很大力气让它看起来很棒 这是 32bpp alpha 混合的 PNG 我有一些代码 如果需要 我可以挖掘
  • FireDac 添加下划线 1 以区分具有相同名称的 2 个列名

    我有一个连接 2 个表的选择 因此这些表中存在具有相似名称的列 因此现在在检索结果时 FireDac 将下划线 1 添加到第二个列名称以区分这两个表 Select from Table1 inner join Table2 on Table
  • 使用 TArray 而不是 Array of T 的原因是什么?

    我正在将遗留的 Delphi 应用程序迁移到 Delphi XE2 我想知道是否有充分的理由替换定义为的数组Array of MyType to TArray
  • 在 Delphi 中将对象转换为 OleVariant

    有没有办法在 OleVariant 中传递包装并解开 TObject 后代 我正在尝试跨自动化对象传递 TObject 我知道这不是一个好主意 但我没有更好的选择 该对象将在来自同一自动化 dll 的对象之间传递 如果这有什么区别的话 像这

随机推荐

  • 在docker-compose中连接tomcat和mysql

    我正在做一个研究项目 现在我正处于将项目转移到 docker 容器的阶段 我在我的网站上放置了 tomcat 在 mysql 上放置了数据库 do docker compose yml 不幸的是 tomcat 中的类无法连接数据库 Java
  • IE 9 忽略 CSS 规则

    我在使用 IE9 时遇到了一个奇怪的问题 它自己忽略了某些 CSS 规则 即使 IE8 也能正确加载它 IE 10 以及所有更好的浏览器 例如 FF 和 Chrome 也是如此 css 正在使用 text css MIME 加载 例如 IE
  • HotSpot 可以内联 lambda 函数调用吗?

    考虑代码 someList forEach x gt System out format element s x 理论上 应该可以内联此代码并通过首先内联来消除间接函数调用forEach方法 然后在 inlined 中内联 lambda 函
  • 文件阅读器 - 再次上传相同的文件不起作用

    我有一些类似绘图的应用程序 用户可以保存项目然后加载它们 当我第一次加载一个文件 例如project1 leds 时 在应用程序中进行一些更改但没有保存它 然后再次加载相同的文件 project1 leds 什么也没有发生 我无法多次加载同
  • 自定义排序 Python 字典

    所以我有一本打印时看起来像这样的字典 10 10 ZT21 14 WX21 12 2 15 5 3 UM 25 我想以我定义的自定义方式对它们进行排序 假设我希望它的排序方式 按键 是ZT21 10 WX21 UM 5 2 有人知道如何以预
  • 到达时间时计时器开始活动

    我希望在达到新活动时开始新活动 到目前为止我遇到了一些麻烦 这就是我到目前为止所拥有的 我希望你们明白我想做什么 如果有更简单有效的方法请告诉我 也许我应该把它放在一个线程中 Chrono Chronometer findViewById
  • 为什么我的 Eclipse 项目有虚拟调试器断点?

    我有一个小项目 当在 Eclipse 调试器中运行时 它似乎总是停在 FileInputStream class 第 106 行 文件被打开 没有设置断点 但 Eclipse 的行为就像我在这里设置了断点一样 如果我清除所有断点 它仍然会发
  • 我应该将 master 合并到功能分支中以使其更新吗?这会被视为不好的做法吗?

    我有这样的情况 master A B E F C D feature x 如果我需要将关键修复 E 和 F 合并到 feature x 分支中以继续开发并且我打算合并回 master 我是否应该将 master 合并到 feature x
  • 如何使用 ALAssetsLibrary 只获取视频

    我正在尝试通过以下代码从照片库中获取视频 但我也获取图像列表 如何获取所有视频的列表 我究竟做错了什么 NSMutableArray assetURLDictionaries NSMutableArray alloc init xy NSM
  • 打印机目的地问题

    我成功地使用 PrintWriter 将字符串写入文本文件 并且默认情况下输出文本文件被写入我正在处理的 Eclipse 项目的目录中 但我的 Eclipse 项目有一个名为 Resources 的特定文件夹 我希望将文本文件写入其中 我的
  • 如何设置 Superset 配置进行缓存

    目前 我出于工作目的正在从事 Airbnb Superset 项目 我知道 Superset 支持缓存 通过 Flask Cache 但是当我设置配置时我遇到了困难 我的 config py 文件如下所示 CACHE DEFAULT TIM
  • 在 AngularJS ngRepeat 中动画 ng-move 动画错误的项目

    当谈到在 ng repeat 中动画 ng move 时 我有点困惑 例如 如果我将数组项目从 3 移动到 7 则项目 4 7 会向上移动并且它们会产生动画 然而 我从 3 移到位置 7 的实际项目却没有 这是一个展示我的问题的 plunk
  • 线程内的消息循环

    如何使用 OTL 在线程内实现消息循环 应用程序 ProcessMessages 是我到目前为止所使用的 但使用起来不太安全 Thanks 这是我从线程队列中提取消息的方法 while GetMessage Msg 0 0 0 and no
  • Github 解决冲突总是将基础分支合并到我当前的分支

    我在 PHP Storm 的本地分支机构工作 任务完成后 我提交我的分支并推送到 git 在 Github 页面上 我创建了一个 Pull 请求 DEV 到目前为止这还可以 但如果某些文件存在冲突 根据这篇文章https docs gith
  • 加载 Keras 模型并用它进行预测

    我制作了一个用于假新闻检测的 Keras NN 模型 我得到了 89 1 的验证准确度 我使用 50 000 个样本进行训练 使用 10000 个样本进行测试 使用 2000 个样本进行验证 我已经保存了该模型 现在我想加载该模型 加载我想
  • 链表与向量

    在过去的几天里 我一直在为软件开发工作的第一次电话面试做准备 在研究我提出的问题时本文 http www codinghorror com blog 2008 01 getting the interview phone screen ri
  • getsockopt 返回与 setsockopt 中设置的不同的 IP_TOS 值

    我正在尝试使用setsockopt to set IPTOS价值IPTOS THROUGHPUT The setsockopt回电0 但是 那getsockopt显示了IP TOS值设置为1 这不同于IPTOS THROUGHPUT 0x8
  • 崩溃。项目开发处于非活动状态

    当我尝试上传新风味版本时 出现错误 警告 Crashlytics 上传发行版时出现问题 项目开发处于非活动状态 我该如何修复它并添加新的flavor用于测试 来自 Stackoverflow 上另一位用户的回复 https stackove
  • Angular js 中的 Twitter 引导日期选择器

    我正在使用 twitter bootstrap Angular js 和 Taffy DB 构建一个应用程序 javascript function datepicker datepicker scope submit function c
  • 在 Delphi 中调整 png 图像大小 - 不正确的 alpha 通道

    我正在调整可能有 Alpha 通道的 png 图像的大小 一切正常 但有一个例外 我在透明区域周围得到一些灰色像素 原始图像没有任何阴影 有没有办法解决这个问题 解决它 我正在使用 Gustavo Daud 的 SmoothResize 请