Cortar e redimensionar EPS

Solução de API C++ Nativa para gerenciar o tamanho de imagens EPS.

 

Transformar sua imagem EPS acabou de ficar mais fácil! Com o Aspose.Page para C++, você pode cortar ou alterar o tamanho dos arquivos EPS de acordo com suas especificações exatas em algumas linhas de código. Quer aumentar? Sem problemas. Precisa dele menor? Nós temos a solução. Nossa API para C++ permite que você dimensione sua imagem de forma precisa, garantindo que ela se encaixe perfeitamente em sua visão. Mas por que você iria querer cortar ou redimensionar uma imagem EPS?

  • Se você estiver desenhando o layout para um documento impresso ou digital, pode ser necessário redimensionar a imagem EPS para caber em dimensões específicas.
  • Ao reduzir o tamanho da imagem, você pode diminuir o tamanho do arquivo, facilitando o compartilhamento, upload ou impressão. Arquivos de imagem menores também carregam mais rápido em sites e documentos digitais, melhorando a experiência do usuário.
  • O recorte (cropping) pode ajudar a eliminar partes perturbadoras ou irrelevantes da imagem, focando a atenção nos elementos-chave, e também pode alterar a proporção da imagem para melhor atender às suas necessidades de design. Portanto, um recorte cuidadoso pode melhorar a composição geral e o apelo visual da imagem.
  • Cortar e redimensionar pode ajudar a otimizar a imagem para uso na web, garantindo que ela carregue rapidamente e tenha boa aparência em diferentes tamanhos de tela.

O Aspose.Page fornece a você a funcionalidade para gerenciar facilmente as bordas dos arquivos EPS. Com esta API, você pode dimensionar ou cortar imagens usando C#. Para saber mais sobre como lidar com arquivos EPS , siga a documentação. Para ver a versão ao vivo da funcionalidade, experimente os aplicativos multiplataforma EPS Crop e EPS Resize .

Para usar a funcionalidade, primeiro você precisa obter a solução:

  • Abra o gerenciador de pacotes NuGet, pesquise por Aspose.Page e instale. Você também pode usar o seguinte comando no Console do Gerenciador de Pacotes.

Package Manager Console Command

    PM> Install-Package Aspose.Page

Etapas para alterar o tamanho da imagem EPS.

O exemplo abaixo mostra o processo de redimensionamento de .eps com as unidades escolhidas - pontos (points). A ordem é:

  1. Inicialize o objeto PsDocument com um fluxo de entrada contendo um arquivo EPS.
  2. Defina o tamanho existente da imagem usando o método estático ExtractEpsSize() .
  3. Crie um fluxo de saída para o arquivo EPS resultante.
  4. Redimensione o objeto PsDocument com um novo tamanho em pontos com o método estático ResizeEps() .
  5. Salve o arquivo EPS redimensionado.
Redimensionar 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());
        }
    }

O exemplo abaixo mostra o processo de recorte (cropping) em vez de redimensionamento de .eps com as unidades escolhidas - pontos. A ordem é:

  1. Inicialize o objeto PsDocument com um fluxo de entrada contendo um arquivo EPS.
  2. Defina a caixa delimitadora (bounding box) existente da imagem usando o método estático ExtractEpsBoundingBox() .
  3. Crie um fluxo de saída para o arquivo EPS resultante.
  4. Corte o objeto PsDocument com uma nova caixa delimitadora com o método estático CropEps() .
  5. Salve o arquivo EPS cortado.
Cortar 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 O que é EPS Formato de Arquivo

EPS (Encapsulated PostScript) é um formato baseado em PostScript que descreve uma única página. Ideal para gráficos vetoriais e combinações vetor‑raster. Após a importação o arquivo não pode ser editado; recomenda‑se convertê‑lo para um formato editável como SVG ou PDF.