小编cla*_*vdb的帖子

在ImageMagick中将TIFF图像转换为PNG时颜色错误

我正在开发一个PHP脚本,可以自动将TIFF图像转换为PNG文件.

为此,我使用ImageMagick:

$ convert a.tif a.png
Run Code Online (Sandbox Code Playgroud)

它在某种程度上起作用,然而,颜色非常尖锐,并且与我们在PC上的图像方式不同.为了说明问题,请查看随附的文件,包括:

  • Windows Live Foto Gallery输出(这几乎就是我想要的)
  • ImageMagick输出(我最终得到的混乱)
  • 原始的TIFF文件

有谁知道是否,如果是这样,我可以改变ImageMagick颜色解释?

非常感谢!

tiff colors imagemagick

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

ffmpeg转换 - 保持音频比特率

我正在使用ffmpeg从不同的视频格式(flv,mp4)中提取音频并将其转换为mp3.

%~dp0ffmpeg.exe -i %1 -ar 44100 -ac 2 -ab 128k "%~dpn1.mp3"
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,在我的输入文件中,音频比特率会有所不同,我想相应地调整输出比特率.即使通过广泛的Google搜索,我也没有找到任何提示如何保持原始比特率.

我需要的是:

-ab copy
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用.

有什么可行的吗?

PS:你可能从上面的格式中得知,我正在使用Windows批处理文件.会有hack使用%~dp0ffmpeg.exe -i,通过grep获取音频比特率并将其插入命令行.我只是认为必须有一种更简单,更优雅的方式.

ffmpeg batch-file

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

php DOM getAttribute

好吧,所以我在这里有一个奇怪的例子,我无法弄明白.

我想在网站上解析一个列表.HTML看起来有点像这样:

<!-- ... -->
<ul id="foo">
    <li data-text="item 1">Blabla</li>
    <li data-text="item 2">Blabla</li>
    <li data-text="item 3">Blabla</li>
    <li data-text="item 4">Blabla</li>
</ul>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)

现在我想抓住所有列表项.我使用DOMDocument类.到目前为止,这很好:

$dom = new DOMDocument();

if (!$dom->loadHTML($html)) {
    die ('Could not parse...');
}

$list = $dom->getElementById('foo');
$items = $list->childNodes;
foreach ($items as $item) {
     print_r($item);
}
Run Code Online (Sandbox Code Playgroud)

但现在,我正在寻找一种简单的方法来读出data-text属性.我做的是:

foreach ($items as $item) {
     echo $item->getAttribute('data-text');
}
Run Code Online (Sandbox Code Playgroud)

这适用于第一个项目,但随后它崩溃了foreach循环.输出是:

item 1
致命错误:在第44行的example.php中调用未定义的方法DOMText :: getAttribute()

我没有得到的是调用getAttribute方法如何改变foreach循环的上下文.所以这里有两个问题:

  1. 如何调用该方法搞砸了我的foreach循环?其次,最优雅的解决方法是什么?
  2. 我意识到我可以遍历$item->attributes with另一个foreach方法,然后比较属性名称data-text并在匹配的情况下读取值,但肯定有更好的方法来做到这一点?!

php dom html-parsing domdocument getattribute

6
推荐指数
1
解决办法
2万
查看次数