将所有图像转换为jpg

将所有图像转换为jpg

本文介绍了将所有图像转换为jpg的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将文件夹和子文件夹中的所有图片转换为jpg。我需要用命令文件批处理这个过程。 GUI工具针对我来说我需要脚本。

I need to convert all images in folder and subfolders to jpg. I need to batch this process with command file. GUI tools needles for me I need the script.

我试图使用来自ImageMagick的mogrify.exe,还有convert.exe函数,但是afaik它们都能够转换图像。

I tried to use mogrify.exe from ImageMagick, there is also convert.exe function, but afaik both of them are able to convert images.

我写了下一个脚本:

$rootdir = "E:\Apps\скрипты\temp1\graphics"
$files = dir -r -i *.png $rootdir
foreach ($file in $files) {.\mogrify.exe -format png *jpg $file}

但是当我尝试时它不起作用运行它,我收到错误:

But it is not work, when I try to run it, I got errors:

mogrify.exe: unable to open file `*jpg' @ error/png.c/ReadPNGImage/3633.
mogrify.exe: Improper image header `E:\Apps\скрипты\temp1\graphics\telluric\day\
Athens\2011-07-03-17.png' @ error/png.c/ReadPNGImage/3641.
mogrify.exe: unable to open image `*jpg': Invalid argument @ error/blob.c/OpenBl
ob/2588.

此外,我找到下一个代码:

Also I have find next code:

[Reflection.Assembly]::LoadWithPartialName('System.Drawing')

$img=[Drawing.Image]::FromFile("$(cd)\Max.jpg")
$img.Save("$(cd)\max.gif", 'Gif')
$img.Dispose()

如何使用dirs树并将png和tiff转换为jpg?

How I can get it work with tree of dirs and convert png and tiff to jpg?

推荐答案

我在这里做了类似的事情,将位图文件转换为图标文件:

I've done something similar with converting a bitmap files to icon files here:

我根据您的要求调整了它并测试了将图像文件转换为jpg的功能:

I adapted it to your requirements and test a function for converting image files to jpg:

function ConvertTo-Jpg
{
    [cmdletbinding()]
    param([Parameter(Mandatory=$true, ValueFromPipeline = $true)] $Path)

    process{
        if ($Path -is [string])
        { $Path = get-childitem $Path }

        $Path | foreach {
            $image = [System.Drawing.Image]::FromFile($($_.FullName));
            $FilePath = [IO.Path]::ChangeExtension($_.FullName, '.jpg');
            $image.Save($FilePath, [System.Drawing.Imaging.ImageFormat]::Jpeg);
            $image.Dispose();
        }
    }

 }

 #Use function:
 #Cd to directory w/ png files
 cd .\bin\pngTest

 #Run ConvertTo-Jpg function
 Get-ChildItem *.png | ConvertTo-Jpg

这篇关于将所有图像转换为jpg的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 10:13