Как я могу сохранить растровый файл без сжатия - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу сохранить файл растрового изображения (ядро C #) без какого-либо сжатия.

Есть ли способ сделать это?

т.е. Я использую magickImage и пытаюсь сохранить с bitdepth = 24 (это для числа бит RGB), поставить один пиксель с RGB:

Для красного: гекса 79 (121 дек), зеленого: 7А гекса, синего: 7В гекса.

Когда я открываю его как бинарный файл, то есть:

https://www.onlinehexeditor.com/

Я не вижу этих значений (79 гекс, 7a гекс и 7b гекс).

Есть ли способ сохранить это изображение с точными значениями RGB?

Кроме того, я намерен разбить очень большой файл изображения на мелкие части (может быть размером 100K x 100K пикселей) с помощью быстрого и простого способа их объединения.

Как я могу это сделать?

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете легко преобразовать это в C #, но почему бы просто не сохранить его, не приставая вообще?

Private Shared Function ConvertImageBasic(filepath As String) As String

    Try

        'Open image
        Dim sourceImg As Bitmap = New Bitmap(filepath)

        'Set new path for the converted image
        filepath = IO.Path.GetTempPath & "image.bmp"

        'Save opened image as a bitmap file type
        sourceImg.Save(filepath, ImageFormat.Bmp)

    Catch ex As Exception

        MsgBox("Failed to convert image, " & ex.Message, vbRetryCancel)

    End Try

    ConvertImageBasic = filepath
End Function

Вы также можете просто сохранить его с помощью ImageMagick.

using (MagickImage image = new MagickImage(filepath))
{
    image.Format = MagickFormat.Bmp;
    image.Write("Snakeware.bmp");
}

Что касается добавления изображений, взгляните на них:

MagickImageCollection.AppendHorizontally()
MagickImageCollection.AppendVertically()
...