На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Как загрузить картинку в Image , Из "строки", без сохранения в файл
    Такая ситуация:
    Есть файл картинки, прочитаный в память.
    Как его загрузить в Image/PictureBox? Не горю желание сохранять сначала в файл, а затем грузить....
      Вот:
      Прикреплённый файлПрикреплённый файлPictureFromByte.rar (1.68 Кбайт, скачиваний: 231)
        Оо круто!!! Огромное спасибо!!! :yes:
        PS: Надеюсь это должно работать на виндах ниже XP.
          Там в коде есть лишние дёргания с CopyMemory и байтовыми массивами, что приводит к падению проги с ошибкой записи памяти если грузит больше 2 картинок подряд.

          Чуток переписал этот код для стабильности и удобности использования

          Вот что получилось:

          ExpandedWrap disabled
            ' ----------------------------------------------------------------------
            ' --- Загрузка картинки из строки
            Public Function LoadPic(Buffer As String) As IPicture
            Dim hMem  As Long, lpMem  As Long
            Dim IID_IPicture(15)
            Dim istm As stdole.IUnknown
            Dim ByteCount As Long
            On Error GoTo Err_Init
                ByteCount = Len(Buffer)
                If ByteCount = 0 Then GoTo Err_Init
                hMem = GlobalAlloc(&H2, ByteCount)
                If hMem <> 0 Then
                    lpMem = GlobalLock(hMem)
                    If lpMem <> 0 Then
                        MoveMemory ByVal lpMem, ByVal Buffer, ByteCount
                        Call GlobalUnlock(hMem)
                        If CreateStreamOnHGlobal(hMem, 1, istm) = 0 Then
                            If CLSIDFromString(StrPtr("{7BF80980-BF32-101A-8BBB-00AA00300CAB}"), IID_IPicture(0)) = 0 Then
                                Call OleLoadPicture(ByVal ObjPtr(istm), ByteCount, 0, IID_IPicture(0), LoadPic)
                            End If
                        End If
                    End If
                End If
                Exit Function
            Err_Init:
                If Err.Number = 9 Then
                    MsgBox "Невозможно загрузиьт картинку, нет данных!"
                Else
                    MsgBox Err.Number & " - " & Err.Description
                End If
            End Function
            Вот:
            Прикреплённый файлПрикреплённый файлPictureFromByte.rar (2.13 Кбайт, скачиваний: 232)
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0200 ]   [ 15 queries used ]   [ Generated: 15.09.25, 14:53 GMT ]