У цій темі ми розглянемо, як перетворити EPS на TIFF за допомогою C++. Ви побачите, як завантажити вхідний файл EPS і перетворити його на зображення на C++ за допомогою простих викликів API.
Кроки для перетворення EPS у TIFF за допомогою C++
- Установіть Aspose.Page for C++ з інструмента керування пакетами NuGet
- Додати посилання на простір імен Aspose::Page
- Укажіть вихідний ImageFormat та ініціалізуйте вхідний потік
- Завантажте вхідний файл EPS за допомогою об’єкта класу PsDocument
- Встановіть властивості ImageSaveOptions і збережіть вихідний файл TIFF
Ви можете експортувати EPS у TIFF за допомогою C++ за допомогою простих викликів API із кількома рядками коду. Вам просто потрібно завантажити вхідний файл EPS і встановити різні властивості відповідно до ваших вимог, а потім перетворити файл за допомогою PsDocument class за допомогою C++.
Код для перетворення EPS у TIFF за допомогою C++
#pragma once | |
#include <stdio.h> | |
#include <tchar.h> | |
#include <cstdint> | |
#include <Aspose.Page.Cpp/eps/src_eps/PsDocument.h> | |
#include <Aspose.Page.Cpp/eps/src_eps/PsConverterException.h> | |
#include <Aspose.Page.Cpp/eps/src_eps/Device/ImageSaveOptions.h> | |
#include <Aspose.Page.Cpp/eps/src_eps/Device/ImageDevice.h> | |
#include <Aspose.Page.Cpp/eps/src_eps/Device/PdfDevice.h> | |
#include <Aspose.Page.Cpp/eps/src_eps/Device/PdfSaveOptions.h> | |
#include <Aspose.Page.Cpp/License.h> | |
#include "system/enum.h" | |
#include "system/object.h" | |
#include "system/scope_guard.h" | |
#include "system/special_casts.h" | |
#include "system/type_info.h" | |
#include "system/details/dispose_guard.h" | |
#include "system/io/directory.h" | |
#include "system/io/directory_info.h" | |
#include "system/io/file.h" | |
#include "system/io/file_mode.h" | |
#include "system/io/memory_stream.h" | |
#include "system/io/stream.h" | |
#include "system/io/stream_reader.h" | |
#include "system/io/seekorigin.h" | |
#include "system/reflection/assembly.h" | |
#include "system/text/unicode_encoding.h" | |
#include "drawing/rectangle.h" | |
#include "drawing/bitmap.h" | |
#include "drawing/graphics.h" | |
#include <system/object.h> | |
#include <system/array.h> | |
#include <system/string.h> | |
#include <system/int32.h> | |
#include <system/shared_ptr.h> | |
#include <system/object_ext.h> | |
#include <system/exceptions.h> | |
#include <system/environment.h> | |
#include <system/diagnostics/trace.h> | |
#include <system/console.h> | |
using namespace Aspose::Page; | |
using namespace Aspose::Page::EPS; | |
using namespace Aspose::Page::EPS::Device; | |
using namespace System; | |
class EpsToTiffConverter { | |
public: | |
static void ConvertEPStoTIFF() | |
{ | |
// Set the license for Aspose.Page for CPP to Convert EPS File | |
SharedPtr<License> EPStoTIFFlicense = System::MakeObject<License>(); | |
EPStoTIFFlicense->SetLicense(u"Aspose.Total.NET.lic"); | |
// Specify the output TIFF image format | |
System::SharedPtr<System::Drawing::Imaging::ImageFormat> imageFormat = System::Drawing::Imaging::ImageFormat::get_Tiff(); | |
// Initialize PostScript input stream | |
System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream> | |
(u"Input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read); | |
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream); | |
// Set this flag if you want to convert EPS file ignoring minor errors | |
bool suppressErrors = true; | |
//Initialize ImageSaveOptions object with required parameters. | |
System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(suppressErrors); | |
System::SharedPtr<ImageDevice> device = System::MakeObject<ImageDevice>(imageFormat); | |
{ | |
auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream]() | |
{ | |
psStream->Close(); | |
}); | |
try | |
{ | |
document->Save(device, options); | |
} | |
catch (...) | |
{ | |
throw; | |
} | |
} | |
System::ArrayPtr<System::ArrayPtr<uint8_t>> imagesBytes = device->get_ImagesBytes(); | |
int32_t i = 0; | |
{ | |
for (System::ArrayPtr<uint8_t> imageBytes : imagesBytes) | |
{ | |
System::String imagePath = System::IO::Path::GetFullPath(System::String(u"out_image") + System::Convert::ToString(i) | |
+ u"." + System::ObjectExt::ToString(imageFormat).ToLower()); | |
{ | |
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(imagePath, | |
System::IO::FileMode::Create, System::IO::FileAccess::Write); | |
System::Details::DisposeGuard<1> __dispose_guard_1({ fs }); | |
// ------------------------------------------ | |
try | |
{ | |
fs->Write(imageBytes, 0, imageBytes->get_Length()); | |
} | |
catch (...) | |
{ | |
__dispose_guard_1.SetCurrentException(std::current_exception()); | |
} | |
} | |
i++; | |
} | |
} | |
} | |
}; |
Раніше ми досліджували як витягти метадані файлу Microsoft Project за допомогою C++. Однак у цій темі ми реалізували, як генерувати TIFF з EPS за допомогою C++.