Конвертируйте EPS в JPG при загрузке с помощью C # и ImageMagick

#c# #asp.net #image-processing #imagemagick

#c# #asp.net #обработка изображений #imagemagick

Вопрос:

Я только что столкнулся со сценарием, в котором мне нужно конвертировать файлы EPS в файл JPG при загрузке.

Что я бы предпочел сделать, так это при загрузке файлов EPS; Я хотел бы сохранить исходный файл EPS и сохранить его в фоновом режиме в папке, а также преобразовать изображение EPS в JPG и сохранить его в другой папке.

Это то, чего можно достичь с помощью C #? Если да, то не мог бы кто-нибудь, пожалуйста, направить меня в правильном направлении?

Я использовал ImageMagick и GhostScript, и из командной строки я могу конвертировать EPS в JPG, но не уверен, как мне внедрить его в приложение C # и конвертировать EPS в JPG при загрузке.

Любая помощь или любая демонстрация, делающая то же самое, будет отличным подспорьем.

Спасибо, Зульфи

Комментарии:

1. Для вас этого достаточно? imagemagick.org/script/api.php#dot-net (обратите внимание, что это было первое попадание при поиске «imagemagick .net»)

Ответ №1:

Честно говоря, вы можете рассмотреть возможность самостоятельного разбора EPS-файла.

Вероятно, вы можете найти различную информацию о формате файла в Интернете, такую как wotsit.org (который существует с 90-х годов, когда люди все еще писали то, что им было нужно, с нуля.)

Преимуществом этого является отсутствие необходимости встраивать внешние артефакты в ваше решение и затрат на лицензирование. Очевидно, что недостатком этого является вложение личного времени в исследования и разработки. После этого, возможно, вы сможете поделиться своим кодом / библиотекой с другими, у которых нет затрат на атрибуцию, авторское лево или лицензирование.

Удачи!

Ответ №2:

После некоторого изучения доступных решений я наткнулся на эту утилиту, которая, кажется, работает хорошо. Это 200 долларов засервер. Утилита VeryDOC не полагается на какие-либо сторонние библиотеки (в отличие от других решений) и предлагает преобразование между многими форматами. Доступные параметры командной строки:

 C:>ps2img.exe
-------------------------------------------------------
Description:
Convert PS (Postscript) and EPS to TIF, TIFF, JPG, GIF, PNG, BMP, WMF, EMF, PCX, TGA, etc. formats
Usage: ps2img [options] <-i PS File> [-o Output]
-i [input PS]   : Input PS filename
-o [output file]: Output TIFF filename
-g              : Convert to 8-bit grayscale image file, this option is only available while bitcount equal 8 (-b 8)
-m              : Set output to multi-page TIFF file, the default is output to single page TIFF files
-r [resolution] : Set resolution in generated image files
-r 300          : Set horizontal and vertical resolution to 300 DPI
-r 200x300      : Set horizontal and vertical resolution to 200x300 DPI
-r 204x98       : Set horizontal and vertical resolution to 204x98 DPI
-f [first Page] : First page to convert
-l [last Page]  : Last page to convert
-c [compress]   : Set compression method in generated image files (for tif only)
    -c none     : Create TIFF file without compression
    -c lzw      : Compress TIFF using LZW arithmetic
    -c jpeg     : Compress TIFF using JPEG arithmetic
    -c packbits : Compress TIFF using packbits arithmetic
    -c g3       : Compress TIFF using CCITT G3 arithmetic
    -c g4       : Compress TIFF using CCITT G4 arithmetic
    -c ClassF   : Compress TIFF into Fax compatible ClassF 204x98 format
    -c ClassF196: Compress TIFF into Fax compatible ClassF 204x196 format
-q [quality]    : Set quality in created image files (for jpeg image only)
-b [bit count]  : Set bit count in generated image files
-?              : Help
-------------------------------------------------------
Example:
    ps2img -i C:input.ps -o C:output.tif
    ps2img -i C:input.eps -o C:output.tif
    ps2img -m -i C:input.ps -o C:output.tif
    ps2img -c lzw -i C:input.ps -o C:output.tif
    ps2img -q 80 -i C:input.ps -o C:output.jpg
    ps2img -b 4 -i C:input.ps -o C:output.tif
    ps2img -i C:input.ps -o C:output.tif -b 1 -c ClassF -r 204x98 -m
    ps2img -f 1 -l 9 C:input.ps -o C:output.jpg
    ps2img -i C:*.ps -o C:*.pcx
  

Один из вариантов, ImageMagick (бесплатный) GhostScript, по сообщениям, стоит 32 000 долларов в год плата за установку в размере 5000 долларов.

Комментарии:

1. @ShaunWilson Да, я был действительно удивлен, когда увидел этот ценник. Было бы экономичнее обратиться к другой команде или двум и создать собственное решение, чем платить 100 000 долларов в год. Я также был очень удивлен, наткнувшись на утилиту, которая делает это за 200 долларов. Я полагаю, что набор функций ограничен по сравнению с ghostscript, но он делает то, что мне нужно. Возможно, GS следует вместо этого разбить свою библиотеку на отдельные фрагменты и лицензировать их по отдельности.

2. Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы только для ссылок могут стать недействительными, если связанная страница изменится.

3. @rgettman Я попытался предоставить немного больше информации в своем ответе, хотя я не уверен, насколько полезна информация за пределами ссылки.

Ответ №3:

используя ImageMagickNET.dll с помощью этого вы можете конвертировать файлы .eps,.ai,.psd,.tga в формат .jpg.. код на c #:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using SimplePsd;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
using System.Configuration;
using System.Media;
using System.DirectoryServices;
using System.Diagnostics;
namespace Master_Graphics
{
    public partial class Form1 : Form
    { 

        private SimplePsd.CPSD psd = new SimplePsd.CPSD();
        Process ffmpeg;
        string video;
        string thumb;
        public Form1()
        {
            InitializeComponent();
        }
 private void button4_Click(object sender, EventArgs e)
        {
ffmpeg = new Process();
                ffmpeg.StartInfo.Arguments = "convert ""   listBox1.SelectedItem.ToString()   "" -background white -flatten -density 300 -colors 512 -antialias  -normalize -units PixelsPerInch -quality 100 -colorspace RGB -resize 3425x3425  "D:\GRAPHICS SEARCH ENGINE\GRAPHICS IMAGES\EPS\"   final   ".jpg"";
                ffmpeg.StartInfo.FileName = ("C:\Program Files (x86)\ImageMagick-6.5.3-Q16\convert.exe");
                ffmpeg.Start();
}