我想从任何图像在Ubuntu上创建一个示例YUV422帧,这样我就可以为了学习而编写YUV422到RGB888的功能.我真的希望能够使用可信任的工具来创建示例并转换回jpeg.
我尝试过ImageMagick,但显然做错了:
convert -size 640x480 -depth 24 test.jpg -colorspace YUV -size 640x480 -depth 16 -sampling-factor 4:2:2 tmp422.yuv
Run Code Online (Sandbox Code Playgroud)

convert -colorspace YUV -size 640x480 -depth 16 -sampling-factor 4:2:2 tmp422.yuv -size 640x480 -depth 24 -colorspace RGB test2.jpg
Run Code Online (Sandbox Code Playgroud)

我还在Ubuntu上安装了mpegtools包,以便使用jpeg2yuv:
>> jpeg2yuv -f 1 test.jpg
INFO: [jpeg2yuv] Reading jpeg filenames from stdin.
INFO: [jpeg2yuv] Parsing & checking input files.
**ERROR: [jpeg2yuv] System error while opening: "": No such file or directory
Run Code Online (Sandbox Code Playgroud)
显然,别的东西是错的.请问有人可以说明如何实现这一目标吗?谢谢 -
每个用户都可以上传100张TIFF(黑白)图像.
该过程需要:
转换tif为jpg.
将图像大小调整为xx.
将图像裁剪为200px.
添加文本水印.
这是我的PHP代码:
move_uploaded_file($image_temp,$destination_folder.$image_name);
$image_name_only = strtolower($image_info["filename"]);
$name=$destination_folder.$image_name_only.".jpg";
$thumb=$destination_folder."thumb_".$image_name_only.".jpg";
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$destination_folder.$image_name. ' '.$name.' 2>&1';
exec($exec, $exec_output, $exec_retval);
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$name. ' -resize 1024x '.$name;
exec($exec, $exec_output, $exec_retval);
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$name. ' -thumbnail 200x200! '.$thumb;
exec($exec, $exec_output, $exec_retval);
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$name. " -background White label:?.?12355 -append ".$name;
exec($exec, $exec_output, $exec_retval);
Run Code Online (Sandbox Code Playgroud)
这段代码有效.但每张图像的平均处理时间为1秒.因此,对于100张图像,它可能需要大约100秒.
如何加快整个过程(转换,调整大小,裁剪,水印)?
编辑
我有一个服务器G8:Ram:32G,CPU:Intel Xeon E5-2650(4个进程)
版本:ImageMagick 6.9.0-3 Q16 x64
特点:OpenMP的
convert logo: -resize …Run Code Online (Sandbox Code Playgroud) 我有2个长度相同的GIF.
我想把GIF放在一起,只有1个GIF同时播放.我试过用这个convert工具:
convert +append 1.gif1 2.gif output.gif
Run Code Online (Sandbox Code Playgroud)
然而,这似乎将所有图像混合在一起并且将尺寸改变为非常小.
我想我可以将每个图像附加在一起,然后从已经组合的图像中创建一个GIF.但是,当我尝试时,它不起作用:
convert -delay 15 -loop 0 1*.png 2*.png +append output.gif
Run Code Online (Sandbox Code Playgroud)
我有很多长名称的图像,我不想单独检查并附加新的命名约定.
我正在使用Rails 4.2,CarrierWave主分支和MiniMagick 4.3.6(还使用了CarrierWave :: MiniMagick模块)。
根据CarrierWave文档,可以在上载/处理阶段更改文件格式。
但是,我认为该代码无法像所记录的那样工作。我将Amazon S3与fog-awsgem 一起用作我的商店,并且上传到S3的文件仍保留其原始格式。
我的最终目标是上传PDF文档,并在将其保存在S3中时将其处理为png文件。
当我上传图像文件时,一切都按预期工作,它们作为图像正确进入S3。但是,PDF文件仍以“应用程序/ pdf”的内容类型存储在S3中,并且浏览器尝试将其呈现为PDF而不是图像(如果有用,我的上载将在图像滑块中使用)。
有人知道为什么转换过程无法正常进行吗?
模型(models / testimonial.rb):
class Testimonial < ActiveRecord::Base
mount_uploader :image, TestimonialUploader
end
Run Code Online (Sandbox Code Playgroud)
上传器(uploaders / testimonial_uploader.rb):
class TestimonialUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :fog
process :convert_file_to_png => [850, 1100]
def convert_file_to_png(width, height)
manipulate! do |img|
img.format("png") do |c|
c.trim
c.resize "#{width}x#{height}>"
c.resize "#{width}x#{height}<"
end
img
end
end
def extension_white_list
%w(jpg jpeg png pdf bmp tif tiff)
end
def store_dir
"testimonials/#{model.uuid}"
end
def filename
super.chomp(File.extname(super)) + …Run Code Online (Sandbox Code Playgroud) 如何使用ImageMagick为具有透明背景的黑色PNG图像着色?
我想使用ImageMagick的convert命令,允许脚本一次处理数百个图标。
所以我想创建一张由三张较小图像组成的尺寸为 3600x2280 的大图像。第一个应将大小调整为 1680x1050 并放置在左上角。第二个需要调整为 1920x1200 并立即放置在其右侧(+1680 以上)。第三张图片的大小应调整为 1920x1080 并放置在右下角 (+1680+1200)。左下角将是空白/透明的。
我尝试过在网上搜索的各种命令,并且认为对于三张图像中的两张来说,我已经有点接近如下所示的命令:
convert -define png:size=3600x2280 \( Photos/DSC05525-original.jpg -resize 1680x1050 \) -geometry +0+0 -composite \( Photos/Sydney-Loftus-Train-Station-original.jpg -resize 1920x1200 \) -geometry +1680+0 -extent 3600x2280 test.png
Run Code Online (Sandbox Code Playgroud)
...但这将第二张图像放在第一张图像上(我想是因为它不知道延伸到最后?)。我尝试过 -composite、-gravity 和 +repage 的各种组合,但似乎找不到解决方案。
我正在尝试按照官方页面的convert指南使用 imagemagick 的 util 将文本标签转换为图像
我正在使用以下命令。
convert -background lightblue -pointsize 72 label:" spaces " label.gif
虽然我的文本作为前导空格,但输出图像前面没有空格。空间正在被修剪。不过,尾随空格没有问题。我也尝试过在这个SO问题中给出的解决方案,但徒劳无功。
Imagemagic转换:
我们如何设置页面"a4 Landscape"?
图像文件和文件夹结构:
jpg文件数量:2400.
分成30个文件夹:每个文件夹80个jpgs.
任务:为每个文件夹创建一个pdf文件,包含80个图像.
jpg图片:1366 x 768.(风景)
第一次试用:
convert -page A4*.jpg pharma_reproductive.pdf
这导致A4肖像上的风景图像.(太多的空白区域.)
第二次试用:
convert -page A4 -rotate 90*.jpg pharma_reproductive.pdf
这导致A4肖像上的90度旋转景观图像.
每次在Adobe Reader上旋转90度后我都可以使用它.鉴于有30个文件且数量会增加,应该有办法.
我用Google搜索没有运气,我阅读了imagemagic的手册,但是这个几何形状的东西太复杂了......(没有冒犯,但我个人认为它应该更简化......)
先感谢您.
真诚的,
博士
如何在图像上绘制网格、1px 黑色边框、无填充?
网格的每个部分应为 480x360 像素。
例如,给定 1440x1080px 纯白色输入:
它应该有一个 3x3 网格绘制在其上(因为 9 480x360px 矩形适合它)以产生如下所示的输出:
这并不像我希望的命令那么准确(我只是用眼睛绘制矩形),但我希望它能说明我所追求的内容。
我一直在试图安装ImageMagick在Ubuntu 16.04与使用movie.py
我安装ImageMagick 7但是当我从命令行检查版本时
convert --version
Run Code Online (Sandbox Code Playgroud)
它给出了错误
convert: error while loading shared libraries: libMagickCore-7.Q16HDRI.so.6: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我也试过跑
sudo ldconfig /user/local/lib
Run Code Online (Sandbox Code Playgroud)
但是,仍然得到同样的错误.
编辑2:我的安装方式
rpm从imagemagick.org下载了两个文件运行以下命令在Ubuntu 16.04中安装
sudo alien -i ImageMagick-libs-7.0.7-37.x86_64.rpm
sudo alien -i ImageMagick-7.0.7-37.x86_64.rpm
imagemagick ×7
image ×3
carrierwave ×1
converter ×1
icons ×1
macos ×1
minimagick ×1
montage ×1
php ×1
rgb ×1
ubuntu ×1
unix ×1
yuv ×1
zsh ×1