:: Visual Foxpro, Foxpro for DOS
Вывод изображения
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Всем привет.
FOX9
Столкнулся вот с такой проблемой.
Нужно было вывести изображение с помощью GDI+

Создаю вот такую конструкцию

lcFile='c:\1\1.bmp'
llStatus=oGPI.CreateBitmap(675,370)
llStatus = oGPI.CreateTextureBrush(lcFile, 1)
llStatus = oGPI.FillRectangle(0,0,675, 370)
На экран изображение выводится во время работы в среде самого FOXPRO.
Решил создать проект (exe файл)
Положил файл 1.bmp в проект в ветку Other\Other Files
Создал exe файл. Запустил - изображения нет.
Так как файл был уже в проекте, попытался создать проект где lcFile='1.bmp', т.е. без указания пути к файлу.
Все равно не получается.
Раньше проблем с этим не было. Другие граф. файлы находятся в той же ветке и все нормально.
Сам 1.bmp небольшой 681x376 750 kB. Есть граф. файлы в проекте помощнее и проблем нет.
Может еще что то надо для GDI+
Подскажите что не так?
Ratings: 0 negative/0 positive
Re: Вывод изображения
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
LED
Положил файл 1.bmp в проект в ветку Other\Other Files
Создал exe файл. Запустил - изображения нет.
Так как файл был уже в проекте, попытался создать проект где lcFile='1.bmp', т.е. без указания пути к файлу.
Файл в Project Manager есть? Как Exclude не помечен?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Вывод изображения
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
В файле в Project Manager он есть. Как Exclude помечен (в колонке included в квадратике стоит x)
Ratings: 0 negative/0 positive
Re: Вывод изображения
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
LED
Как Exclude помечен (в колонке included в квадратике стоит x)
Зачем? Вот он в ехе и не попадает.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Вывод изображения
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
ssa
Зачем? Вот он в ехе и не попадает.
Этого мало. Для GDIP его надо будет из Exe вытащить и положить куда-нибудь, где его API сможет взять.
Ratings: 0 negative/1 positive
Re: Вывод изображения
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Убрал x Все равно не выводит изображение.

<<Для GDIP его надо будет из Exe вытащить и положить куда-нибудь, где его API сможет взять.>>
Это как сделать.
Ratings: 0 negative/0 positive
Re: Вывод изображения
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
LED
Убрал x Все равно не выводит изображение.
<<Для GDIP его надо будет из Exe вытащить и положить куда-нибудь, где его API сможет взять.>>
Это как сделать.
STRTOFILE(FILETOSTR("1.bmp"), "C:\TEMP\1.BMP")

Какой-нибудь более умный путь. Например в %APPDATA%.
Ratings: 0 negative/0 positive
Re: Вывод изображения
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Ну допустим путь мы укажем куда надо.
А вот куда этот фрагмент кода вставлять?
Ratings: 0 negative/0 positive
Re: Вывод изображения
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Очевидно туда, где ты собираешься этот файл использовать. После использования файл можно и удалить. А можно просто не включать его внутрь exe а распространять как отдельный файл рядом с приложением.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Вывод изображения
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
LED
Положил файл 1.bmp в проект в ветку Other\Other Files
Создал exe файл. Запустил - изображения нет.
Так как файл был уже в проекте, попытался создать проект где lcFile='1.bmp', т.е. без указания пути к файлу.
Все равно не получается.
Раньше проблем с этим не было. Другие граф. файлы находятся в той же ветке и все нормально.

Если с другими графическими файлами (с которыми всё нормально) работа ведётся тем же способом, что и с проблемным, то всё, что вам написали выше, проблему не объясняет.

А если с другими файлами и способ был другой, то тогда противоречия нет - наличие файла 1.bmp в EXE в данном случае не имеет никакого значения (что он там есть, что его нет), так как для нормальной работы при выводе картинки этот файл должен являться отдельным файлом дисковой системы, а в программе должен быть записан не какой-нибудь (lcFile='c:\1\1.bmp'), а реальный путь к этому файлу.

PS
Какой-нибудь путь, в том числе пустой, допустим в том случае, когда может использоваться файл, включенный в EXE, но это не ваш случай.



Исправлено 1 раз(а). Последнее : akvvohinc, 25.12.19 01:19
Ratings: 0 negative/0 positive
Re: Вывод изображения
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
LED
Столкнулся вот с такой проблемой.
Нужно было вывести изображение с помощью GDI+

Создаю вот такую конструкцию

А для какой конечной цели такие сложные действия?
Почему не годятся какие-нибуль стандартные средства фокспро, типа форма с заливкой?


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Вывод изображения
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Всем спасибо кто принимал участие в теме. Сделал, получилось.
Возник вопрос, а есть ли другой вариант. Без создания файла для GDIP.
Ratings: 0 negative/0 positive
Re: Вывод изображения
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
LED
Всем спасибо кто принимал участие в теме. Сделал, получилось.
Возник вопрос, а есть ли другой вариант. Без создания файла для GDIP.
Не очень. Битмап на диске и битмап в памяти для отображения это две большие разницы. Соответственно, функции, работающие с файловым форматом картинки, ожидают файлов. А функции, которые работают на отображение ожидают правильный объект картинки в памяти.

На сях можно на файловую функцию перенаправить поток из памяти. А тут я даже затрудняюсь ответить.

А извлекать ресурсы из фоксового экзешника прямо в память этого уже никто кроме фокса не умеет.
Ratings: 0 negative/0 positive
Re: Вывод изображения
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Image.PictureVal?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Вывод изображения
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Возможно через LOADPICTURE() и какие-то дополнительные АПИ функции это и реализуемо. Правда я даже не в курсе читает ли LOADPICTURE файлы "вкомпилированные" внутрь exe


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Вывод изображения
LED
Автор

Сообщений: 204
Дата регистрации: 22.07.2006
Igor Korolyov

Как сделать так чтобы можно один раз загрузить из файла изображение, а потом связать с растром без всякого создания промежуточного файла.
Пока нашел только
llStatus = oGPI.CreateTextureBrush(lcFile, 1)
Но при этом надо создать промежуточный файл. Это не очень...
Как можно из буфера обмена графический файл (BMP и т.д.) связать с растром.
Потом залить это изображение.

lcFile='c:\1\1.bmp'
llStatus=oGPI.CreateBitmap(675,370)
llStatus = oGPI.FillRectangle(0,0,675, 370)
Мне надо сделать это с помощью GDI+
Если есть такое то подскажи как это осуществить.
Заранее спасибо.



Исправлено 2 раз(а). Последнее : LED, 29.12.19 15:46
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика