En este tema, exploraremos cómo convertir EPS a TIFF usando C++. Observará cómo cargar el archivo EPS de entrada y convertirlo en una imagen en C++ usando simples llamadas a la API.
Pasos para convertir EPS a TIFF usando C++
- Instale Aspose.Page for C++ desde la herramienta Administrador de paquetes NuGet
- Agregar referencia al espacio de nombres Aspose::Page
- Especifique el ImageFormat de salida e inicialice un flujo de entrada
- Cargue el archivo EPS de entrada usando el objeto de clase PsDocument
- Establezca las propiedades de ImageSaveOptions y guarde el archivo TIFF de salida
Puede exportar EPS a TIFF usando C++ usando simples llamadas API con pocas líneas de código. Simplemente necesita cargar el archivo EPS de entrada y establecer diferentes propiedades según sus requisitos, luego convierta el archivo con PsDocument class usando C++.
Código para convertir EPS a TIFF usando 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++; | |
} | |
} | |
} | |
}; |
Anteriormente, exploramos cómo extraer metadatos de archivos de Microsoft Project usando C++. Sin embargo, en este tema hemos implementado cómo generar TIFF desde EPS usando C++.