修复 Linux 制作的 png 文件以便在 Windows 上使用

修复 Linux 制作的 png 文件以便在 Windows 上使用

有一个特定图标库我真的很喜欢 DeviantArt 的这款产品。

现在,我已经下载了包含这些文件的包png(我知道这些ico文件在那里,但我想要这些png文件)。

但是,我的 Windows 7 电脑显示大约 1/3 的png文件已损坏。我通常使用 XnView 查看文件,它不会显示“损坏”的文件。我尝试过其他编辑器和查看器,但遇到了同样的问题。

现在,png 包最初是为 Linux 设计的,作为整个系统的 OS 图标包,所以我认为这些png文件是在 Linux 中构建的。

那么,有没有什么方法可以“修复”png我的 Windows 7 电脑上的“损坏”文件?也许在创建文件时,有一些部分颜色不对或者其他问题?

有什么线索吗?

[编辑]

我有阅读此主题提取过程中可能会发生“损坏”。我使用 7-zip 进行了所有提取。它包含一个ziptar我会尝试另一个提取器,但我认为不会有什么不同。

我认为答案可能围绕编辑二进制文件中的某个开始或结束位,但我不确定。

[更新]

好的,我修复了图标包的链接......(另一个没问题) - 但这个新链接实际上是来自 DeviantArt 的原始包。

我是这样操作的:我提取文件夹的内容.zip,然后提取文件夹的内容,.tar直到没有任何内容被压缩。

举个例子,如果你下载了那套文件,文件夹add.png中会有一个名为的文件32x32\actions。另一个是32x32\actions\bottom.png。所有文件夹中都有很多。一个好的例子是,它32x32\actions\appointment.png是完全可读的。

答案1

问题似乎在于tar档案包含符号链接。这意味着重复文件不会被写入两次,而是链接到现有文件。例如,可以使用ln -sLinux 中的命令来完成此操作,然后如果您tar在 Linux 中创建存档,则符号链接将存储在 tar 存档中。

然而,7-zip 会对tar存档中的符号链接进行处理,它不会对其进行干净的处理(例如制作链接文件的相同副本),而是写入链接文件名作为内容文件的。在本例中,文件gnome-panel-launcher.png包含实际图像。

7zip tar 符号链接错误

你真的没有太多选择,除了报告这是一个错误(但已经有一个现存的 案例在他们的错误跟踪器中,没有任何进展的迹象)或找到可以更好地处理这种情况的归档器。我试过了压缩包,这是我通常使用的,它可以毫无问题地提取档案。

答案2

我尝试提取 Tar 档案7-Zip。提取过程确实没有问题。问题是 Tar 档案在 Linux 系统中可以有符号链接,而这些链接在 Windows 中被提取为文件7-Zip

由于您只需要实际图像,因此您可以安全地删除这些显示为无效 PNG 文件的符号链接文件,并只使用剩余的实际图像。我注意到,符号链接文件的大小约为 8 到 32 字节,而实际图像肯定会大得多,至少超过 320 字节。

但是如果你想知道每个符号链接链接到的实际文件,你可以打开链接文件记事本或文本编辑器(是的,即使它是一个 .PNG 文件),你就会找到实际文件的文件名。例如,符号链接文件添加.png在记事本中打开时显示实际文件是列表添加.png。您可以发现此文件存在于文件夹中,并包含添加图标。

在此处输入图片描述

您可以将符号链接文件从 .PNG 重命名为 .TXT,以便于查找。但我只想删除它们,因为我只对实际图像感兴趣,而且没有必要保留同一图像的副本(即使 Windows 提供了自己的符号或硬链接系统)。

笔记:在提取过程中,可能会询问您是否覆盖某些文件。答案是的当您知道现有文件大约为 12 个字节,而新文件大约为 500-1,000 字节或更多时。现有文件是符号链接文件,而覆盖它的新文件是实际映像。

相关内容