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

Как загрузить рисунок PNG на форму

28.04.2012, 12:15. Показов 8288. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такой вопрос, как заставить Image или PictureBox понимать формат рисунка .PNG кто сталкивался помогите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2012, 12:15
Ответы с готовыми решениями:

Как по нажатию кнопки поместить на форму компонент TImage и загрузить в него рисунок?
Помогите pliz, нужно что бы при нажатии кнопки, на определённой форме многооконного приложения создавался компонент типа TImage с...

В comboBox загрузить список графических файлов. По нажатию на кнопку – рисунок на форму
По открытию книги открыть форму. В comboBox – список графических файлов. По нажатию на кнопку – рисунок на форму. По нажатию на другую...

Как в delphi 7 загрузить png
как в delphi 7 загрузить картинку в формате .png чтобы она выглядила как в timage ну т.е ненадо нажимать кнопки TPNGImage - установлен...

12
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
28.04.2012, 12:33
Тут смотрел?
В ГУГЛ: PictureBox png vb6 site:cyberforum.ru
0
Заблокирован
28.04.2012, 12:38  [ТС]
А что попроще нет никого ? Слишком там сложно.
0
Заблокирован
29.06.2012, 11:56  [ТС]
UP темы!

Нашел отличный пример загрузки .PNG в Image или в кнопку. Искал долго и упорно )))) Пользуйтесь, кому данный вопрос не давал покоя. Единственный минус, это как я понял придется постоянно таскать загружаемые картинки вместе с проектом, или использовать файлы ресурса.

Может кто знаете лучше примеры? Кроме конвертирования изображений... Пойдет даже использование стороннего компонента.
Вложения
Тип файла: rar ARGB2EMF.rar (36.5 Кб, 313 просмотров)
2
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
04.07.2012, 07:33
Так сойдет?
_png_alpha.zip
0
Заблокирован
04.07.2012, 07:45  [ТС]
При запуске данного примера у меня Visual Basic зависает! О_о
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
04.07.2012, 21:30
Цитата Сообщение от inv.DS Посмотреть сообщение
При запуске данного примера у меня Visual Basic зависает! О_о
Опять, что ли из архива без распаковки запускаете? О_о
0
Заблокирован
04.07.2012, 21:52  [ТС]
Цитата Сообщение от PAnT0P Посмотреть сообщение
Опять, что ли из архива без распаковки запускаете? О_о
Я не настолько глуп и неграмотен! Ты меня прям огорчил! В распакованном виде виснет проект.

Windows 7 Pro x64 Ru
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
04.07.2012, 22:40
Странно у меня все пашет как надо
Windows 7 Home Premium x64 Ru

http://video.mail.ru/mail/292944028/12/17.html
0
Заблокирован
05.07.2012, 06:50  [ТС]
Ну вот, как то так ! ! ! !
Миниатюры
Как загрузить рисунок PNG на форму  
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
05.07.2012, 07:56
Интересно, что если сам компилирую пример ( или запускаю их среды VB6), то исполняемый файл создается, но не запускается. А тот ехешник, что в архиве (RunMe.exe) работает правильно.
Пока не понял почему так.
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
05.07.2012, 08:01
inv.DS, Pro_grammer, Попробуйте закоментировать 35 строку
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Private Sub Form_Load()
    Dim lOldLong As Long
    Dim H As Long
    Dim W As Long
    Dim hImage As Long
    Dim hGraphics As Long
    Dim lToken As Long
    Dim BMI As BITMAPINFO
    Dim BF As BLENDFUNCTION
    Dim SZ As Size
    Dim PAD As POINTAPI, PAS As POINTAPI
    Dim GDIPSI As GdiplusStartupInput
    Me.Show
    DoEvents
    strPNGFile = App.Path & "\mspaint.png" 'Путь к маске PNG
    With BMI.bmiHeader
        .biSize = Len(BMI.bmiHeader)
        .biBitCount = 32
        .biHeight = Me.ScaleHeight
        .biWidth = Me.ScaleWidth
        .biPlanes = 1
        .biSizeImage = .biWidth * .biHeight * (.biBitCount / 8)
    End With
    hCDC = CreateCompatibleDC(Me.hDC)
    hBitmap = CreateDIBSection(hCDC, BMI, DIB_RGB_COLORS, ByVal 0, 0, 0)
    hOldObject = SelectObject(hCDC, hBitmap)
    GDIPSI.GdiplusVersion = 1
    If GdiplusStartup(lToken, GDIPSI) <> 0 Then
        Unload Me
    End If
    Call GdipCreateFromHDC(hCDC, hGraphics)
    Call GdipLoadImageFromFile(StrConv(strPNGFile, vbUnicode), hImage)
    Call GdipGetImageHeight(hImage, H)
    Call GdipGetImageWidth(hImage, W)
'    Call GdipDrawImageRect(Me.hDC, hImage, 0, 0, W, H)
    Call GdipDrawImageRect(hGraphics, hImage, 0, 0, W, H)
    lOldLong = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, lOldLong Or WS_EX_LAYERED)
    PAD.x = 0: PAD.y = 0
    PAS.x = 0: PAS.y = 0
    SZ.cx = ScaleWidth
    SZ.cy = ScaleHeight
    With BF
        .AlphaFormat = AC_SRC_ALPHA
        .BlendFlags = 0
        .BlendOp = AC_SRC_OVER
        .SourceConstantAlpha = 255
    End With
    Call GdipDisposeImage(hImage)
    Call GdipDeleteGraphics(hGraphics)
    Call UpdateLayeredWindow(Me.hWnd, Me.hDC, PAD, SZ, hCDC, PAS, 0, BF, ULW_ALPHA)
End Sub
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
05.07.2012, 08:30
Нашел способ попроще, тоже с использование библиотеки gdi, но нет ни чего лишнего
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Enum GpStatus
    Ok = 0
    GenericError = 1
    InvalidParameter = 2
    OutOfMemory = 3
    ObjectBusy = 4
    InsufficientBuffer = 5
    NotImplemented = 6
    Win32Error = 7
    WrongState = 8
    Aborted = 9
    FileNotFound = 10
    ValueOverflow = 11
    AccessDenied = 12
    UnknownImageFormat = 13
    FontFamilyNotFound = 14
    FontStyleNotFound = 15
    NotTrueTypeFont = 16
    UnsupportedGdiplusVersion = 17
    GdiplusNotInitialized = 18
    PropertyNotFound = 19
    PropertyNotSupported = 20
End Enum
 
Private Type GdiplusStartupInput
    GdiplusVersion As Long
    DebugEventCallback As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs As Long
End Type
 
Private Declare Function GdipDrawImageRect Lib "gdiplus" (ByVal graphics As Long, ByVal image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As GpStatus
Private Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal FileName As String, image As Long) As GpStatus
Private Declare Function GdipGetImageWidth Lib "gdiplus" (ByVal image As Long, Width As Long) As GpStatus
Private Declare Function GdipGetImageHeight Lib "gdiplus" (ByVal image As Long, Height As Long) As GpStatus
Private Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As GpStatus
Private Declare Function GdiplusStartup Lib "gdiplus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As GpStatus
Private Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hdc As Long, graphics As Long) As GpStatus
Private Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As GpStatus
 
Private token As Long
 
Private Function LoadImage(ByVal FileName As String, ByVal hDestDC As Long) As GpStatus
    Dim lngWidth As Long, lngHeight As Long
    Dim graphics As Long, img As Long
    Dim GpInput As GdiplusStartupInput
    Dim tmp_status As GpStatus
   
    GpInput.GdiplusVersion = 1
    tmp_status = GdiplusStartup(token, GpInput)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipCreateFromHDC(hDestDC, graphics)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipLoadImageFromFile(StrConv(FileName, vbUnicode), img)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipGetImageHeight(img, lngHeight)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipGetImageWidth(img, lngWidth)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipDrawImageRect(graphics, img, 0, 0, lngWidth, lngHeight)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipDisposeImage(img)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipDeleteGraphics(graphics)
The_End:
    LoadImage = tmp_status
End Function
 
 
Private Sub Command1_Click()
LoadImage "C:\mspaint.png", Picture1.hdc
End Sub
 
Private Sub Form_Load()
    Me.AutoRedraw = True
    'LoadImage "C:\mspaint.png", Me.hdc
    Me.Refresh
End Sub
Добавлено через 4 минуты
Цитата Сообщение от PAnT0P Посмотреть сообщение
Попробуйте закоментировать 35 строку
Да, это сработало.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2012, 08:30
Помогаю со студенческими работами здесь

Как загрузить картинку в формате png?
Как загрузить картинку в формате png?И как зделать гиперссылкой?

Как загрузить PNG картинки в Image?
Всем доброго времени суток. Вот такая проблемка возникла: загружаю PNG картинку через Object Inspector - все отлично работает. Как тока...

Как загрузить изображение png из потока в TImage
Как не посредственно загрузить png из потока в TImage? Приходится делать так #include &lt;memory&gt; #include &lt;pngimage.hpp&gt;...

Как загрузить png изображение из файла ресурсов
пробую так: Image1-&gt;Picture-&gt;RCDATA-&gt;LoadFromResourceName((int)HInstance, &quot;H_A&quot;); файл ресурсов создан из меню, тип ресурса RCDATA. ...

Как загрузить рисунок БД SQL Server + Delphi
Есть проблемка, не знаю как реализовать. Есть таблица в БД где есть &quot;Наименование изделия&quot; и название файла рисунка, нужно чтоб в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru