Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
39 / 27 / 1
Регистрация: 11.01.2011
Сообщений: 113

Picture1.Picture

24.03.2011, 18:04. Показов 1950. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как вытащить данные Picture в переменную
А точнее переконвертировать Object.Picture в String а затем обратно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2011, 18:04
Ответы с готовыми решениями:

На строке : 'Picture1.Picture = Clipboard.GetData(vbCFDIB)' выходит ошибка - Out of memory.
Сканер и память ... Мой комп Tb800/128/Matrox Mil.2 8mb На строке : 'Picture1.Picture = Clipboard.GetData(vbCFDIB)' выходит ошибка...

Можно ли динамически создавать Picture Box внутри другого Picture Box?
Можно ли динамически создавать Picture Box внутри другого Picture Box. Если можно то как? Заранее благодарен

Как сделать Picture1.hDC динамичным?
Privet. podskajitye pojalusta u minya est takoy kod. Private Declare Function SetPixelV Lib 'gdi32' (ByVal hDC As Long, ByVal x...

2
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
25.03.2011, 09:51
Цитата Сообщение от Grigoriy251 Посмотреть сообщение
А точнее переконвертировать Object.Picture в String а затем обратно?
Код не мой. Работает отлично. Надеюсь то что надо.

1) читает побайтово файл и конвертирует в строку в Base64, которую затем пишет в текстовый файл.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
InputBinaryFile = "C:\Temp\test.jpg" 
OutPutTextFile = "C:\Temp\test2.txt" 
textBase64="" 
 
call BinaryFile_to_Base64String 
call Base64_to_TextFile 
 
sub BinaryFile_to_Base64String 
Set objStream = CreateObject("ADODB.Stream") 
objStream.Type = 1 ' TypeBinary 
objStream.Open() 
objStream.LoadFromFile(InputBinaryFile) 
readBytes = objStream.Read() 
Set objXML = CreateObject("MSXml2.DOMDocument") 
objXML.loadXML "<Base64Data />" 
Set objDocElem = objXML.documentElement 
objDocElem.dataType = "bin.base64" 
objDocElem.nodeTypedValue = readBytes 
textBase64 = objDocElem.text 
end sub 
 
sub Base64_to_TextFile 
Set objStream = CreateObject("ADODB.Stream") 
objStream.Type = 2 ' TypeText 
objStream.Open() 
objStream.writetext textBase64 
objStream.SaveToFile OutPutTextFile,2 
end sub
2) читает созданный ранее текстовик и конвертирует в исходный вид в новый файл
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
InputTextFile = "C:\Temp\test2.txt" 
OutPutBinaryFile = "C:\Temp\test2.jpg" 
textBase64="" 
 
call TextFileBase64_to_Base64string 
call textBase64_to_BinaryFile 
 
sub TextFileBase64_to_Base64string 
Set objStream = CreateObject("ADODB.Stream") 
objStream.Type = 2 ' TypeText 
objStream.Open() 
objStream.LoadFromFile(InputTextFile) 
textBase64 = objStream.ReadText() 
end sub 
 
Sub textBase64_to_BinaryFile 
Set objXML = CreateObject("MSXml2.DOMDocument") 
Set objDocElem = objXML.createElement("tmp") 
objDocElem.DataType = "bin.base64" 
objDocElem.text = textBase64 
writeBytes = objDocElem.NodeTypedValue 
Set objStream = CreateObject("ADODB.Stream") 
objStream.Type = 1 ' TypeBinary 
objStream.Open() 
objStream.Write writeBytes 
objStream.SaveToFile OutPutBinaryFile, 2 
end sub
Переделай под себя код. Думаю труда не составит.
1
39 / 27 / 1
Регистрация: 11.01.2011
Сообщений: 113
25.03.2011, 21:59  [ТС]
Не мне не совсем это нужно было
Мне нужно было не файл конвертировать а сам объект Picture
Вот что помогло выдергивание данных из Picture в массив

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim PicBits() As Byte, PicInfo As BITMAP
Dim Cnt As Long, BytesPerLine As Long
Private Sub Command1_Click()
       'Get information (such as height and width) about the picturebox
    GetObject Picture1, Len(PicInfo), PicInfo
    'reallocate storage space
    BytesPerLine = (PicInfo.bmWidth * 3 + 3) And &HFFFFFFFC
    ReDim PicBits(1 To BytesPerLine * PicInfo.bmHeight * 3) As Byte
    'Copy the bitmapbits to the array
    GetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
    SetBitmapBits Picture2.Image, UBound(PicBits), PicBits(1)
  
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2011, 21:59
Помогаю со студенческими работами здесь

Как из формы обратиться к Picture1 на UserControl
Создаю контрол. Проект состоит из Form и UserControl. На самом UserControlе расположен Picture1, как из формы обратиться к Picture1 на...

Как полученные данные в Picture1 скопировать в text1 в другой форме?
как полученные данные в Picture1 (находится в form2) скопировать в text1 (находится в form4) помогите весь день не могу решить этот вопрос.

Picture
как сделать чтобы при нажатии кнопки(KeyPress) картинка сдвигалась влево?

Геометрия в Picture
задача задано круг (радис, координаты центра (x,y) есть) нарисован n-угольник (координаты вершин заданы (xi,yi)) на многоугольник...

Combobox и Picture
Помогите пожалуйста у меня такая проблема. не могу связать значения из ComboBox.List с Picture.drawWidth. Надо сделать чтобы например...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru