#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();
}