Как изменить разрешение изображения (DPI) с помощью C # и Photoshop COM - PullRequest
0 голосов
/ 10 октября 2019

У меня есть много изображений для каталогизации в файловой системе и изменения разрешения в DPI.

Изображения представляют собой большие файлы psd и tiff.

Я создал простое консольное приложение на c # длянайти изображения и переместить их в новую файловую систему.

Как я могу использовать Photoshop COM, чтобы открыть каждый файл и изменить его разрешение?

Я решил использовать библиотеку Photoshop COM, потому что изображение можетесть больше каналов, и я хотел бы сохранить их.

Проектный код:

// Adobe Photoshop CC 2019 Object Libray
using Photoshop;

namespace CreateFileSystem
{
    class Program
    {
        public static void ChangeResolution(string filepath)
        {
            Photoshop.Application appRef = new Photoshop.Application();

            DirectoryInfo d = new DirectoryInfo(filepath);

            foreach (var file in d.GetFiles("*.psd"))
            {
                Document docRef = appRef.Open(file.ToString());
                docRef.SaveAs(???,???,???,???);

            }
        }
    }
} 

1 Ответ

0 голосов
/ 10 октября 2019

Я записал действие в группе и вызываю его программно.

// Adobe Photoshop CC 2019 Object Libray
using Photoshop;

namespace GraficheCreaFileSystem
{
    class Program
    {
        public static void ChangeResolution(string filepath)
        {
            // open photoshop application
            Photoshop.Application appRef = new Photoshop.Application();
            // open image file
            Document docRef = appRef.Open(filepath.ToString());
            // do "100" action belong group "Reduce100dpi"
            appRef.DoAction("Reduce100dpi", "100");
            string ext = Path.GetExtension(filepath);
            // add a suffix to new filename
            string filepath_new = filepath.Replace(ext, "_100dpiAUTO" + ext);
            // save the file with new filename
            docRef.SaveAs(filepath_new);
            // close the image document
            docRef.Close();
            // quit app
            appRef.Quit();
        }
    }
}
...