как я могу преобразовать WriteableBitmap в строку png base64? [Дубликат]

Версия stardard-SQL с использованием логической логики :

SELECT company_name
     , COUNT(action = 'EMAIL' OR NULL) AS "Email"
     , COUNT(action = 'PRINT' AND pagecount = 1 OR NULL) AS "Print 1 pages"
     , COUNT(action = 'PRINT' AND pagecount = 2 OR NULL) AS "Print 2 pages"
     , COUNT(action = 'PRINT' AND pagecount = 3 OR NULL) AS "Print 3 pages"
FROM   tbl
GROUP  BY company_name;

SQL Fiddle.

Как?

TRUE OR NULL дает TRUE. FALSE OR NULL дает NULL. NULL OR NULL дает NULL. И COUNT учитывает только ненулевые значения. Вуаля.

4
задан Benjamin Martin 31 March 2015 в 23:50
поделиться

1 ответ

Даже если ваш ImageSource не является BitmapImage, вы все равно можете применить его к BitmapSource, который является базовым классом для всех классов растрового изображения WPF, таких как BitmapImage, BitmapFrame, WriteableBitmap, RenderTargetBitmap и т. д. (см. здесь ).

Итак, если ваш ImageSource на самом деле является BitmapSource (а не DrawingImage или D3DImage), следующий метод преобразует его в массив байтов с помощью указанного BitmapEncoder (например, PngBitmapEncoder):

public byte[] ImageSourceToBytes(BitmapEncoder encoder, ImageSource imageSource)
{
    byte[] bytes = null;
    var bitmapSource = imageSource as BitmapSource;

    if (bitmapSource != null)
    {
        encoder.Frames.Add(BitmapFrame.Create(bitmapSource));

        using (var stream = new MemoryStream())
        {
            encoder.Save(stream);
            bytes = stream.ToArray();
        }
    }

    return bytes;
}
9
ответ дан Clemens 20 August 2018 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: