powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / bmp to base64
11 сообщений из 11, страница 1 из 1
bmp to base64
    #37777360
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Проблема в следующем.: нужно сделать скриншот экрана и снимок представить в виде строки формата base64 для использования протоколом soap. скрин я делать научился но сохраняется в bmp и весит около 8 Мб. Надо его переконвертировать в jpeg что б меньше весил т.к. картинка будет передаваться через инет..
Помогите пожалуйста!
...
Рейтинг: 0 / 0
bmp to base64
    #37777413
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena87,

1. При чем тут фокс?
2. При сохранении выбери нужный формат .jpeg
...
Рейтинг: 0 / 0
bmp to base64
    #37777435
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я делаю скрин в фоксе вот так:
Код: plaintext
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.
*//Íàæèìàåì Print Screen
#Define VK_SNAPSHOT 44 
#DEFINE KEYEVENTF_KEYUP 2
Declare integer keybd_event IN user32 SHORT bVk, SHORT bScan, INTEGER dwFlags, INTEGER dwExtraInfo 
=keybd_event (VK_SNAPSHOT, 0, 0, 0);
=keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);

#define CF_BITMAP 2
#define CF_PALETTE 9
#define OBJ_BITMAP 7
#define PICTYPE_BITMAP 1
#define IID_IDispatch Chr(0x00)+Chr(0x04)+Chr(0x02)+Chr(0x00)+ ;
Replicate(Chr(0x00), 4)+Chr(0xC0)+Replicate(Chr(0x00), 6)+Chr(0x46)
Declare Long OpenClipboard in Win32API Long hWnd
Declare Long CloseClipboard in Win32API
Declare Long GetClipboardData in Win32API Long
Declare Long DeleteObject in Win32API Long
Declare Long GetObjectType in Win32API Long
Declare Long OleCreatePictureIndirect In oleaut32 String @, String @, Long, Object @
hBmp = 0
IF OpenClipboard(0) != 0
hBmp = GetClipboardData(CF_BITMAP)
hPal = GetClipboardData(CF_PALETTE)
CloseClipboard()
ENDIF
*!*	If hBmp = 0 Or GetObjectType(hBmp) <> OBJ_BITMAP
*!*	= MESSAGEBOX("&#221;&#242;&#238; &#237;&#229; BMP")
*!*	RETURN
*!*	ENDIF
lcPictDesc = BINTOC(16, "4RS") + BINTOC(PICTYPE_BITMAP, "4RS") + BINTOC(hBmp, "4RS") + BINTOC(hPal, "4RS")
iid = IID_IDispatch
IPic = 0
OleCreatePictureIndirect(@lcPictDesc, @iid, 1, @IPic)
= SAVEPICTURE(IPic, "d:/pict.bmp")
DeleteObject(hBmp)
= MESSAGEBOX("ok")



смысл в том что б сделать скрин когда будет возникать ошибка и он будет отправляться вместе с описанием ошибки на mail.
Если кто знает как сохранить скрин в jpeg подскажите пожалуйста.
...
Рейтинг: 0 / 0
bmp to base64
    #37777479
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena87,

Посмотри тут , может, подойдет
...
Рейтинг: 0 / 0
bmp to base64
    #37777500
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, использовать какое-то приложение в коммерческом продукте очень плохо...
...
Рейтинг: 0 / 0
bmp to base64
    #37777502
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena87нет, использовать какое-то приложение в коммерческом продукте очень плохо...
Это если на халяву, а если все законно, то почему нет?
...
Рейтинг: 0 / 0
bmp to base64
    #37777513
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто пихать стороннее приложение да и любое другое в большой проект не красиво...
...
Рейтинг: 0 / 0
bmp to base64
    #37777541
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось преобразовать файл в jpg, вместо 8 мегабайт bmp сейчас 250 кб jpg =)
Получилось при помощи библиотеки gdiPlus
Класс для работы с изображениями с побомощью данной библиотеки описан в книге Клепинина VisualFoxPro 9.0 (tckb кому интересно)

сейчас сделано так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
PROCEDURE tmp

LOCAL lcPath, loGP, llReturn
SET CLASSLIB TO vfpgdiplus

#Define VK_SNAPSHOT 44 
#DEFINE KEYEVENTF_KEYUP 2
Declare integer keybd_event IN user32 SHORT bVk, SHORT bScan, INTEGER dwFlags, INTEGER dwExtraInfo 
=keybd_event (VK_SNAPSHOT, 0, 0, 0);
=keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);

loGP = CREATEOBJECT("GdipImages")
*loGP.LoadFromFile(GETFILE('bmp'))
loGP.CopyFromClipboard()
loGP.SaveToFile('d:\gptest2.jpg')
= MESSAGEBOX(IIF(llReturn,'OK','&#206;&#248;&#232;&#225;&#234;&#224; ' + LTRIM(STR(loGP.GetStatus()))))
ENDPROC




Осталось преобразовать данный файл в строку формата base64. помогите пожалуйста.
...
Рейтинг: 0 / 0
bmp to base64
    #37777575
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хелп читать пробовали - StrConv(lcStr, 13 )
...
Рейтинг: 0 / 0
bmp to base64
    #37778684
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да вот видел я ее но в книге про нее так написано что я не понял что она это то что мне надо=)
...
Рейтинг: 0 / 0
bmp to base64
    #37778685
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / bmp to base64
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]