Compartilhar via


ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Método

Definição

Converte a região especificada da matriz de bytes de entrada em base 64 e copia o resultado para a região especificada da matriz de bytes de saída.

public:
 virtual int TransformBlock(cli::array <System::Byte> ^ inputBuffer, int inputOffset, int inputCount, cli::array <System::Byte> ^ outputBuffer, int outputOffset);
public int TransformBlock (byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset);
abstract member TransformBlock : byte[] * int * int * byte[] * int -> int
override this.TransformBlock : byte[] * int * int * byte[] * int -> int
Public Function TransformBlock (inputBuffer As Byte(), inputOffset As Integer, inputCount As Integer, outputBuffer As Byte(), outputOffset As Integer) As Integer

Parâmetros

inputBuffer
Byte[]

A entrada a ser computada em base 64.

inputOffset
Int32

O deslocamento na matriz de bytes de entrada do qual começar a usar os dados.

inputCount
Int32

O número de bytes na matriz de bytes de entrada a ser usado como dados.

outputBuffer
Byte[]

A saída na qual gravar o resultado.

outputOffset
Int32

O deslocamento na matriz de bytes de saída do qual começar a gravar os dados.

Retornos

O número de bytes gravados.

Implementações

Exceções

O objeto ToBase64Transform atual já foi descartado.

O tamanho dos dados não é válido.

O parâmetro inputBuffer contém um tamanho de deslocamento inválido.

- ou -

O parâmetro inputCount contém um valor inválido.

O parâmetro inputBuffer é null.

O parâmetro inputBuffer exige um número não negativo.

Exemplos

O exemplo de código a seguir demonstra como chamar o TransformBlock método para iterar por meio inputBytes da transformação por blockSize. Este exemplo de código faz parte de um exemplo maior fornecido para a ToBase64Transform classe .

int inputBlockSize = base64Transform->InputBlockSize;
while ( inputBytes->Length - inputOffset > inputBlockSize )
{
   base64Transform->TransformBlock(
      inputBytes,
      inputOffset,
      inputBytes->Length - inputOffset,
      outputBytes,
      0 );

   inputOffset += base64Transform->InputBlockSize;
   outputFileStream->Write(
      outputBytes,
      0,
      base64Transform->OutputBlockSize );
}
int inputBlockSize = base64Transform.InputBlockSize;

while(inputBytes.Length - inputOffset > inputBlockSize)
{
    base64Transform.TransformBlock(
        inputBytes,
        inputOffset,
        inputBytes.Length - inputOffset,
        outputBytes,
        0);

    inputOffset += base64Transform.InputBlockSize;
    outputFileStream.Write(
        outputBytes, 
        0, 
        base64Transform.OutputBlockSize);
}
Dim inputBlockSize As Integer = base64Transform.InputBlockSize

While (inputBytes.Length - inputOffset > inputBlockSize)
    base64Transform.TransformBlock( _
        inputBytes, _
        inputOffset, _
        inputBytes.Length - inputOffset, _
        outputBytes, _
        0)

    inputOffset += base64Transform.InputBlockSize
    outputFileStream.Write(outputBytes, _
        0, _
        base64Transform.OutputBlockSize)
End While

Comentários

A ToBase64Transform classe é um algoritmo de bloco que processa blocos de entrada de 3 bytes e cria blocos de saída de 4 bytes. O TransformBlock método transforma um bloco de entrada de 24 bits em 32 bits de dados de caractere. Você deve manter os limites de entrada de 3 bytes para 4 limites de saída de bytes para corresponder à transformação do bloco.

Aplica-se a

Confira também