Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
9 / 9 / 0
Регистрация: 07.10.2011
Сообщений: 187
1

Как преобразовать IntPtr в изображение, а после в byte[]?

13.08.2015, 23:14. Показов 1577. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть в том, что я хочу выбирать PSD файл, преобразовывать его сразу в картинку и отправлять в обменик

Есть метод GetHBitmap(), работает примерно так:
C#
1
pictureBox1.Image = System.Drawing.Image.FromHbitmap(psd.GetHBitmap());
Надо сделать из него png картинку, а после затолкать эту картину в массив byte[] bytes который уже отсылается
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2015, 23:14
Ответы с готовыми решениями:

Как перевести byte[] или переменную типа IntPtr к типу byte[] (ассемблерные инструкции)?
Наткнулась на проблему, нужно перевести тип IntPtr в массив ассемблерной инструкции. Вот пример...

преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода
есть COM интерфейс с методом: virtual /* */ HRESULT STDMETHODCALLTYPE OnReceivePacket( ...

Преобразовать два byte числа в одно short
Поскольку short занимает 2 байта, а byte 1 байт, значит, можно (а мне еще и нужно) записать два...

Преобразовать String в Byte[] без использования Encoding
Всем доброго времени суток :) В общем возникла "проблема" имеем код - byte Send = new byte {...

5
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
14.08.2015, 00:14 2
Fangod, ни windows ни .NEN не имеют встроенных средства для работы с PSD. Поэтому преобразование psd -> png придется делать с помощью Photoshop или найти библиотеку которая умеет это делать. Вроде как MagickNet умеет с PSD работать. Имея png сможешь двигаться дальше.
0
9 / 9 / 0
Регистрация: 07.10.2011
Сообщений: 187
14.08.2015, 00:19  [ТС] 3
Собственно, я и использую библиотеку, SimplePsd.dll

Добавлено через 2 минуты
И если это как-то выводится в pictureBox, то я подумал можно и в картинку преобразовать
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
14.08.2015, 00:30 4
Лучший ответ Сообщение было отмечено Fangod как решение

Решение

Fangod, ок. Значит делай так:
C#
1
2
3
4
5
6
7
8
9
10
using System.Drawing;
using System.Drawing.Imaging;
...
var image = Image.FromHbitmap(psd.GetHBitmap());
byte[] data;
using (var mstream = new MemoryStream())
{
    image.Save(mstream, ImageFormat.Png);
    data = mstream..ToArray();
}
1
9 / 9 / 0
Регистрация: 07.10.2011
Сообщений: 187
15.08.2015, 19:36  [ТС] 5
При открытии больших PSD файлов (50-200v,) вылетает исключение, как с этим бороться?
Миниатюры
Как преобразовать IntPtr в изображение, а после в byte[]?  
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
15.08.2015, 19:42 6
Fangod, посмотри что находится в HResult и InnerException.
0
15.08.2015, 19:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2015, 19:42
Помогаю со студенческими работами здесь

Как правильно преобразовать string to byte
У меня есть БД, в ней поле объекта OLE, там лежит картинка. Когда с поля беру картинку так...

задать изображение из byte[]
здравствуйте. подскажите, пожалуйста, как можно вывести изображение на страницу asp.net, которое...

Преобразовать byte[] в картинку, DataGrid
Из БД в datatable получаю таблицу. В одном поле хранятся изображения в виде массива байтов. Мне...

Как преобразовать IntPtr в int?
Голову ломаю и всё-равно не могу понять как преобразовать IntPtr в int? Можете кто-нибудь на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru