Обрізати та змінити розмір EPS
Рідне рішення C++ API для керування розміром зображень EPS.
Трансформувати зображення EPS стало простіше! За допомогою Aspose.Page для C++ ви можете обрізати або змінити розмір файлів EPS відповідно до ваших точних специфікацій за допомогою кількох рядків коду. Хочете зробити його більшим? немає проблем Потрібно менше? Ми допоможемо вам. Наш API для C++ дозволяє вам точно масштабувати зображення, гарантуючи, що воно відповідає вашому баченню як влите. Але чому ви можете обрізати або змінити розмір зображення EPS?
- Якщо ви розробляєте макет для друкованого або цифрового документа, вам може знадобитися змінити розмір зображення EPS, щоб він відповідав певним розмірам.
- Зменшивши розмір зображення, ви можете зменшити розмір файлу, що полегшить спільний доступ, завантаження чи друк. Менші файли зображень також швидше завантажуються на веб-сайтах і в цифрових документах, покращуючи взаємодію з користувачем.
- Обрізання може допомогти усунути відволікаючі або нерелевантні частини зображення, зосередивши увагу на ключових елементах, а також може змінити співвідношення сторін зображення, щоб краще відповідати вашим потребам дизайну. Тож ретельне кадрування може покращити загальну композицію та візуальну привабливість зображення.
- Обрізання та зміна розміру можуть допомогти оптимізувати зображення для використання в Інтернеті, забезпечуючи швидке завантаження та гарний вигляд на екранах різних розмірів.
Aspose.Page надає вам можливість легко керувати межами файлів EPS. За допомогою цього API ви можете масштабувати або обрізати зображення за допомогою C#. Щоб дізнатися більше про як працювати з файлами EPS , перегляньте документацію. Щоб побачити діючу версію функції, спробуйте EPS Crop і EPS Resize між програми платформи.
Щоб скористатися функцією, спочатку потрібно отримати рішення:
Відкрийте менеджер пакетів NuGet і знайдіть Aspose.Page та встановіть. Ви також можете використати наступну команду з консолі менеджера пакетів.
Package Manager Console Command
PM> Install-Package Aspose.Page
Кроки для зміни розміру зображення EPS.
У наведеному нижче прикладі показано процес зміни розміру .eps із вибраними одиницями вимірювання – точками. Порядок:
- Ініціалізуйте об’єкт PsDocument вхідним потоком, що містить файл EPS.
- Визначте існуючий розмір зображення за допомогою статичного методу ExtractEpsSize() .
- Створіть вихідний потік для отриманого файлу EPS.
- Змініть розмір об’єкта PsDocument із новим розміром у пунктах за допомогою статичного методу ResizeEps() .
- Збережіть файл результату.
Змінити розмір EPS
// The path to the documents directory. | |
System::String dataDir = RunExamples::GetDataDir_WorkingWithEPS(); | |
//Create an input stream for EPS file | |
{ | |
System::SharedPtr<System::IO::Stream> inputEpsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_1({ inputEpsStream}); | |
// ------------------------------------------ | |
try | |
{ | |
//Initialize PsDocument object with input stream | |
System::SharedPtr<PsDocument> doc = System::MakeObject<PsDocument>(inputEpsStream); | |
//Get size of EPS image | |
System::Drawing::Size oldSize = doc->ExtractEpsSize(); | |
//Create an output stream for resized EPS | |
{ | |
System::SharedPtr<System::IO::Stream> outputEpsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output/" + u"output_resize_points.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_0({ outputEpsStream}); | |
// ------------------------------------------ | |
try | |
{ | |
//Increase EPS size in 2 times and save to the output stream | |
doc->ResizeEps(outputEpsStream, System::Drawing::SizeF(static_cast<float>(oldSize.get_Width() * 2), static_cast<float>(oldSize.get_Height() * 2)), Aspose::Page::Units::Points); | |
} | |
catch(...) | |
{ | |
__dispose_guard_0.SetCurrentException(std::current_exception()); | |
} | |
} | |
} | |
catch(...) | |
{ | |
__dispose_guard_1.SetCurrentException(std::current_exception()); | |
} | |
} |
У наведеному нижче прикладі показано процес кадрування замість зміни розміру .eps із вибраними одиницями вимірювання – точками. Порядок:
- Ініціалізуйте об’єкт PsDocument вхідним потоком, що містить файл EPS.
- Визначте існуючу обмежувальну рамку зображення за допомогою статичного методу ExtractEpsBoundingBox() .
- Створіть вихідний потік для отриманого файлу EPS.
- Обріжте об’єкт PsDocument новою обмежувальною рамкою за допомогою статичного методу CropEps() .
- Збережіть файл результату.
Обрізати EPS
// The path to the documents directory. | |
System::String dataDir = RunExamples::GetDataDir_WorkingWithEPS(); | |
//Create an input stream for EPS file | |
{ | |
System::SharedPtr<System::IO::Stream> inputEpsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_1({ inputEpsStream}); | |
// ------------------------------------------ | |
try | |
{ | |
//Initialize PsDocument object with input stream | |
System::SharedPtr<PsDocument> doc = System::MakeObject<PsDocument>(inputEpsStream); | |
//Get initial bounding box of EPS image | |
System::ArrayPtr<int32_t> initialBoundingBox = doc->ExtractEpsBoundingBox(); | |
//Create an output stream for resized EPS | |
{ | |
System::SharedPtr<System::IO::Stream> outputEpsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output/" + u"output_crop.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write); | |
// Clearing resources under 'using' statement | |
System::Details::DisposeGuard<1> __dispose_guard_0({ outputEpsStream}); | |
// ------------------------------------------ | |
try | |
{ | |
//Create new bounding box | |
//Bounding box is represented by 4 numbers: x0, y0, x, y, where x0 - left margin, y0 - top margin, x - (x0 + width), y - (y0 + height) | |
System::ArrayPtr<float> newBoundingBox = System::MakeArray<float>({260, 300, 480, 432}); | |
//Crop EPS image and save to the output stream | |
//Croping of image is changing of its bounding box so that new values of bounding box will be within initial bounding box, that is | |
//initialBoundingBox[0] <= newBoundingBox[0] <= initialBoundingBox[2] | |
//initialBoundingBox[1] <= newBoundingBox[1] <= initialBoundingBox[3] | |
//initialBoundingBox[0] <= newBoundingBox[2] <= initialBoundingBox[2] | |
//initialBoundingBox[1] <= newBoundingBox[3] <= initialBoundingBox[3] | |
doc->CropEps(outputEpsStream, newBoundingBox); | |
} | |
catch(...) | |
{ | |
__dispose_guard_0.SetCurrentException(std::current_exception()); | |
} | |
} | |
} | |
catch(...) | |
{ | |
__dispose_guard_1.SetCurrentException(std::current_exception()); | |
} | |
} |
EPS What is EPS File Format
EPS (EPSF) або формат файлу Інкапсульований PostScript — це формат, який насправді є програмою PS, яка описує, як виглядатиме окрема сторінка. Тобто це обмежений PS плюс окремі примітки, які допомагають інкапсулювати графіку PostScript в інший документ. EPS відмінно підтримує векторну графіку або комбіновану векторно-растрову графіку. Особливістю формату є те, що як тільки він імпортується в документ, його вже не можна редагувати. Це одна з причин конвертації цього формату на той, з яким ви легше працювати.