1 (изменено: ypppu, 2013-10-25 18:42:54)

Тема: AHK: Вставить картинку png в скрипт без пути

Доброго времени суток .Помогите вставить картинку png в скрипт без пути. Есть скрипт он показывает картинку png по горячей клавише, как загрузить эти картинки в скрипт и считать их с него , что бы можно было запустить этот скомпилированный ahk на другом компьютере ,без копирования папки с картинками png.


#NoEnv
#Persistent

WS_EX_TRANSPARENT := 0x20
WS_EX_LAYERED := 0x80000

Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow
WinGet, ID
Gui, Color, EEAA99
WinSet TransColor, EEAA99
Gui, Add, Picture, y27 x11 w60 h-1 gLabel1, E:\pricel\Red+.png
Gui, Add, Picture, y27 x11 w60 h-1 gLabel2, E:\pricel\RedGin+.png
Gui, Show, NA

Label1:
GuiControl, hide, static1
Loop 
{
   Sleep 600000
    Reload
}
  
~F9::
Label2:
GuiControl, hide, % "static" . 2 - pt := !pt
GuiControl, Show, % "static" . 1 + pt 
Return
WinSet, ExStyle, % "+" WS_EX_TRANSPARENT | WS_EX_LAYERED, ahk_id %ID%

Return
OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

2

Re: AHK: Вставить картинку png в скрипт без пути

Через

FileInstall

установи картинку в папку Temp, а потом выгружай картинку в свою программу.

Как сказал мой дед - Я твой дед

3 (изменено: Drugoy, 2013-10-24 18:45:58)

Re: AHK: Вставить картинку png в скрипт без пути

Или с помощью кодирования картинки в base64 и потом декодировании обратно в файл. Есть уже даже AHK функции для этого написанные, гуглятся на раз.

4 (изменено: serzh82saratov, 2013-10-24 21:06:08)

Re: AHK: Вставить картинку png в скрипт без пути

Drugoy
К сожалению не до конца понимаю что такое base64. Задача заинтересовала, сделал по своему, возможно тот же принцип что и в base64, возможно нет.

Ядрён
Вариант с моментальным удалением файлов. Работает также в некомпилированном виде.

Я там полностью изменил алгоритм показа картинок, ибо тот что у вас мне совсем непонятен, или он просто чертовский кривой.

ALL
Ещё интересен вопрос: возможно ли сохранить bitmap картинки в текст, и далее из этого текста воссоздать bitmap и отобразить его в static ввиде исходного изображения, ну или в слоёном окне?

Post's attachments

Pic.ahk 28.55 kb, 43 downloads since 2013-10-24 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

5

Re: AHK: Вставить картинку png в скрипт без пути

serzh82saratov пишет:

Ещё интересен вопрос: возможно ли сохранить bitmap картинки в текст, и далее из этого текста воссоздать bitmap и отобразить его в static ввиде исходного изображения, ну или в слоёном окне?

Вспомнилось, что тут видел будильник с картинкой, создаваемой похожим образом.

Ходит Спесь, надуваючись, С боку на бок переваливаясь. Ростом-то Спесь аршин с четвертью, Шапка-то на нём во целу сажень, Пузо-то его всё в жемчуге, Сзади-то у него раззолочено... Идет Спесь, видит: на небе радуга; Повернул Спесь во другую сторону: Не пригоже-де мне нагибатися!
А. К. Толстой

6

Re: AHK: Вставить картинку png в скрипт без пути

я так понял что можно преобразовать свою картинку png в hex и вставить в ваш скрипт, но если так то подскажите как преобразовать png в hex

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

7 (изменено: serzh82saratov, 2013-10-25 01:00:15)

Re: AHK: Вставить картинку png в скрипт без пути

Korobkoff пишет:
serzh82saratov пишет:

Ещё интересен вопрос: возможно ли сохранить bitmap картинки в текст, и далее из этого текста воссоздать bitmap и отобразить его в static ввиде исходного изображения, ну или в слоёном окне?

Вспомнилось, что тут видел будильник с картинкой, создаваемой похожим образом.

DllCall("CreateFile"

  Похожим на что?

ап:
Проверил вариант с DllCall, он производит запись минимум в 5 раз дольше чем NumPut с file.RawWrite, и в 10 раз дольше если файл уже существует перед записью, причём для file.RawWrite в этом случае разницы нет.

------

Ядрён пишет:

как преобразовать png в hex

Комментарий в коде ни о чём не говорит?


/*
 ; Программа получения переменной из файла
FileName = 
 
File := FileOpen(FileName, "r"), File.Pos := 0
File.RawRead(buf, Length := file.length)
File.Close()
 
hex := "Var := """
Loop % Length
    hex .= NumGet(buf, A_Index - 1, "UChar") . (!Mod(A_Index, 25) ? """`n" A_Tab A_Tab ". "" " : " ") 
Clipboard := hex """"
Return
*/

Код надо если не стараться разобрать, то хотя бегло просмотреть, там всего 50 строк.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

8

Re: AHK: Вставить картинку png в скрипт без пути

вот что получилось

/*
 ; Программа получения переменной из файла
FileName = Pic.png
 
File := FileOpen(FileName, "r"), File.Pos := 0
File.RawRead(buf, Length := file.length)
File.Close()
 
hex := "Var := """
Loop % Length
    hex .= NumGet(buf, A_Index - 1, "UChar") . (!Mod(A_Index, 25) ? """`n" A_Tab A_Tab ". "" " : " ") 
Clipboard := hex """"
Return
*/

имя файла написал  , сюда закинул сам файл Pic.png - C:\Windows\Temp, подскажите что сделал неправильно.

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

9

Re: AHK: Вставить картинку png в скрипт без пути

А что неполучилось?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

10

Re: AHK: Вставить картинку png в скрипт без пути

Пожалусто помогите разобраться . Опишите пошагово действия

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

11

Re: AHK: Вставить картинку png в скрипт без пути

нет неполучилось

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

12

Re: AHK: Вставить картинку png в скрипт без пути

Ядрён пишет:

вот что получилось

/*
 ; Программа получения переменной из файла
FileName = Pic.png
 
File := FileOpen(FileName, "r"), File.Pos := 0
File.RawRead(buf, Length := file.length)
File.Close()
 
hex := "Var := """
Loop % Length
    hex .= NumGet(buf, A_Index - 1, "UChar") . (!Mod(A_Index, 25) ? """`n" A_Tab A_Tab ". "" " : " ") 
Clipboard := hex """"
Return
*/

имя файла написал  , сюда закинул сам файл Pic.png - C:\Windows\Temp, подскажите что сделал неправильно.

/*...*/ Получился у тебя кусок комментария. В FileName пишешь полный путь к картинке. Запускаешь, в буфере обмена получаешь переменную.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

13

Re: AHK: Вставить картинку png в скрипт без пути

Это будет в буфере:


Var := "255 216 255 224 0 16 74 70 73 70 0 1 1 1 1 44 1 44 0 0 255 219 0 67 0"
        . " 2 1 1 2 1 1 2 2 2 2 2 2 2 2 3 5 3 3 3 3 3 6 4 4 3"

Var на hex1, второе на hex2.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

14 (изменено: Ядрён, 2014-03-02 17:24:20)

Re: AHK: Вставить картинку png в скрипт без пути

Вот текст скрипта, файл-Pic.png- лежит по указанному пути , запускаю ahk - итог: буфер обмена пуст. Может надо подставить какую нибудь директиву типо "#SingleInstance".

/*
 ; Программа получения переменной из файла
FileName = C:\Windows\Temp\Pic.png
 
File := FileOpen(FileName, "r"), File.Pos := 0
File.RawRead(buf, Length := file.length)
File.Close()
 
hex := "Var := """
Loop % Length
    hex .= NumGet(buf, A_Index - 1, "UChar") . (!Mod(A_Index, 25) ? """`n" A_Tab A_Tab ". "" " : " ") 
Clipboard := hex """"
Return
*/
OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

15

Re: AHK: Вставить картинку png в скрипт без пути

/*...*/ Получился у тебя кусок комментария.

/*...*/ - это комментарий, это не код! Надо просто раскомментировать.


FileName = C:\Windows\Temp\Pic.png
 
File := FileOpen(FileName, "r"), File.Pos := 0
File.RawRead(buf, Length := file.length)
File.Close()
 
hex := "Var := """
Loop % Length
    hex .= NumGet(buf, A_Index - 1, "UChar") . (!Mod(A_Index, 25) ? """`n" A_Tab A_Tab ". "" " : " ") 
Clipboard := hex """"
MsgBox Готово, смотри буфер.
Return 

--------

Ядрён
Предложения начинаются с большой буквы и заканчиваются точкой, пробелы ставятся после знака препинания.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

16

Re: AHK: Вставить картинку png в скрипт без пути

Спасибо огромное за ваше терпение, всё разобрался.

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

17

Re: AHK: Вставить картинку png в скрипт без пути

serzh82saratov пишет:

Clipboard := hex """"
MsgBox Готово, смотри буфер.

Вообще-то в буфере не hex, а dec. Hex = hexadecimal.

18

Re: AHK: Вставить картинку png в скрипт без пути

Ну это просто название переменной, я и не говорил что там hex. Можно обозвать и как StrBytes, или кому как по вкусу.
Тут больше косяк в:

HexToFile( hex, Path)  {
RegExReplace(hex, A_Space, "", Length)
VarSetCapacity(buf, Length, 0)

Loop, parse, hex, %A_Space%
NumPut(A_LoopField + 0, buf, A_Index - 1, "UChar") 

file := FileOpen(Path, "w")
file.RawWrite(buf, Length)
file.Close()
Return Path
}

StringReplace и минус одно ненужное вычисление, дало ещё 10% к скорости:


HexToFile( hex, Path)  {  
    StringReplace, #, hex, %A_Space%, , UseErrorLevel 
    VarSetCapacity(buf, Length := ErrorLevel, 0)
    
    Loop, parse, hex, %A_Space% 
        NumPut(A_LoopField, buf, A_Index - 1, "UChar")  
    
    file := FileOpen(Path, "w"), file.length := 0 
    file.RawWrite(buf, Length), file.Close() 
    Return Path
}    

Ещё вопрос: при более длинных строках байт чем в моём коде, такая ошибка:

Line Text: . " 252 140 226 105 134 58 231 36 246 175 119 116 120 46 231 65 226 63 16 88 223 254 208 118 11"
Error: Continuation section too long.

Надо переделать в обычную многострочную переменную это понятно. Но почему выражения не поддерживают длинные строки?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

19

Re: AHK: Вставить картинку png в скрипт без пути

Надо переделать в обычную многострочную переменную это понятно.

Хм. Тоже самое - Error: Continuation section too long.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

20

Re: AHK: Вставить картинку png в скрипт без пути

serzh82saratov пишет:

Ну это просто название переменной, я и не говорил что там hex.

Как это не говорил? Название переменной об этом и говорит.

serzh82saratov пишет:

Ещё вопрос: при более длинных строках байт чем в моём коде, такая ошибка:

Line Text: . " 252 140 226 105 134 58 231 36 246 175 119 116 120 46 231 65 226 63 16 88 223 254 208 118 11"
Error: Continuation section too long.

Надо переделать в обычную многострочную переменную это понятно. Но почему выражения не поддерживают длинные строки?

Ничего не понял. Где continuation section?

21

Re: AHK: Вставить картинку png в скрипт без пути

Ничего не понял. Где continuation section?

Например если прописать в переменную скрипта набор байт файла весом 300кб, то будет эта ошибка.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

22

Re: AHK: Вставить картинку png в скрипт без пути

Подправил код.

Post's attachments

DecToPic.ahk 26.37 kb, 32 downloads since 2013-10-25 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

23

Re: AHK: Вставить картинку png в скрипт без пути

Например если прописать в переменную скрипта набор байт файла весом 300кб, то будет эта ошибка.

Видимо ограничение на длинну переменной 16384 символов включая имя переменной. Но не могу найти это в справке...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

24 (изменено: Indomito, 2013-10-25 16:37:42)

Re: AHK: Вставить картинку png в скрипт без пути

Ядрён Есть два метода, простой и сложный, хотя кому как


Метод №1

Использовать FileInstall

Скрипт(фрагмент №1 - установка)

; Ресурсы скрипта
FileCreateDir, %A_WorkingDir%ASOS_RES ; Создаём папку для ресурсов
FileSetAttrib, +H, %A_WorkingDir%ASOS_RES ; Делаем её скрытой
FileInstall, ASOS_RES\windows7.jpg, ASOS_RES\windows7.jpg, 1 ; Картинка для рестарта
FileInstall, ASOS_RES\Os_Settings_Gear.ico, ASOS_RES\Os_Settings_Gear.ico, 1 ; иконка в трее
FileInstall, ASOS_RES\ON.mp3, ASOS_RES\ON.mp3, 1    ; звук ON
FileInstall, ASOS_RES\OFF.mp3, ASOS_RES\OFF.mp3, 1  ; звук OFF

Скрипт(фрагмент №2 - использование)

Gui, test:Add, Picture, gMyPicture AltSubmit, ASOS_RES\windows7.jpg

Метод №2

Использовать готовый скрипт Convert_BASE64.ahk для конвертации в BASE64, его можно взять у меня.

Вот начальный фрагмент скрипта, т.е. инструкция как его использовать.

;How to use!:
;1. Download and save the .ahk to a directory of your choosing.
;2. Run the script
;3. Select a file you want to include with your script(s)
;4. Enter a name for the function you call to recreate the file (valid function names only)
;5. Wait for it to do its stuff
;6. Answer the questions on how you want to save the script
;7. Simply include the code via #include or pasting it into your script
;8. Call the function with Extract_*name* and the path/name 
;          of the file you want it to save as and it will recreate the file
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

25

Re: AHK: Вставить картинку png в скрипт без пути

serzh82saratov
Basic Usage and Syntax -> Scripts

A continuation section cannot produce a line whose total length is greater than 16,383 characters (if it tries, the program will alert you the moment the script is launched). One way to work around this is to do a series of concatenations into a variable. For example:


Var =
(
...
)
Var = %Var%`n  ; Add more text to the variable via another continuation section.
(
...
)
FileAppend, %Var%, C:\My File.txt

26

Re: AHK: Вставить картинку png в скрипт без пути

YMP
Ясно, спасибо надо допилить, если метод BASE64 не намного лучше.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

27 (изменено: Indomito, 2013-10-25 17:06:44)

Re: AHK: Вставить картинку png в скрипт без пути

Сейчас найду новую версию, этой года или более

UPD

Вот тут http://www.autohotkey.com/board/topic/5 … erdecoder/ - прочти, вроде всё сделали, но я не стал всё тему полностью читать.

Или это - Include virtually any file in a script (exe/zip/dll/etc....)

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

28

Re: AHK: Вставить картинку png в скрипт без пути

Ядрён, повышайте грамотность. Также не стоит в названии темы употреблять слова вроде "помогите", не несущие смысловой нагрузки. Они затрудняют поиск.

29 (изменено: serzh82saratov, 2014-04-21 00:09:19)

Re: AHK: Вставить картинку png в скрипт без пути

Indomito
Спасибо, но перед этим нашёл вариант от SKAN - http://www.autohotkey.com/board/topic/8 … ntry583013 и уже переделал по его примеру. По ощущениям, штука мощная. Попробовал 2 картинки 1920 x 1080, скорость очень даже. Файл скрипта весит в 2 раза меньше, по сравнению с моим вариантом записи байт.

В этом коде учтено ограничение на длинну переменной, можно писать большие файлы.

+ открыть спойлер


    ; http://forum.script-coding.com/viewtopic.php?pid=76445#p76445

#SingleInstance Force 
SetBatchLines -1
TempPic := A_Temp "\Pic.png" 
I := 1
 
GoSub, DATAInit
Gui, Margin, 0, 0 
Gui, -Caption +AlwaysOnTop -DPIScale +ToolWindow +E0x08000000 
Gui, Add, Picture, w60 h-1 gChangePic vPic, % DataToFile(DATA%I%, TempPic)
FileDelete, %TempPic% 
Gui, Show, NA
SetTimer ChangePic, -1000
Return

2::
ChangePic:
    I := I = 1 ? 2 : 1
    GuiControl, -Redraw, Pic
    GuiControl, , Pic, % DataToFile(DATA%I%, TempPic)  
    FileDelete, %TempPic% 
    GuiControl, +Redraw, Pic
    SetTimer ChangePic, -1000
    Return  

Esc::
    ExitApp  
 
 
DataToFile( InData, TrgFile) {    
    DllCall( "Crypt32.dll\CryptStringToBinary" ( A_IsUnicode ? "W" : "A" ), UInt,&InData 
        , UInt,StrLen(InData), UInt,1, UInt,0, UIntP,Bytes, Int,0, Int,0, "CDECL Int" ) 
    VarSetCapacity( OutData, Req := Bytes * ( A_IsUnicode ? 2 : 1 ) ) 
    DllCall( "Crypt32.dll\CryptStringToBinary" ( A_IsUnicode ? "W" : "A" ), UInt,&InData 
        , UInt,StrLen(InData), UInt,1, Str,OutData, UIntP,Req, Int,0, Int,0, "CDECL Int" )   
    File := FileOpen(TrgFile, "w"), File.length := 0, File.RawWrite(OutData, Bytes) 
    File.Close(), VarSetcapacity( OutData, 0)  
    Return TrgFile 
} 


 
 ; Программа получения переменной из файла
SetBatchLines -1
File = D:\Images\3D-part2\Glassina (9).jpg
NameVar = DATA2
Clipboard := DataToVar(Base64enc(File), NameVar)  
MsgBox Готово, смотри буфер. 
Return 
 
DataToVar(DATA, Name, RowLen = 128) {  
    StringReplace, Var, DATA, `r`n, , 1
    DATALen := StrLen(Var), Step := 0, tLen := 1 
    Loop % Ceil(DATALen / RowLen)
    {   
        Str .= SubStr(Var, tLen, RowLen) "`n" 
        tLen += RowLen, ++Step
        If (Step * RowLen >= 16000)  
            Step := 0, Str .= ")`n" Name " = %" Name "%`n(`n" 
    }   
    Return Name " = `n(`n" Str ")"
}    
 
Base64enc(File) {  
    FileGetSize, Size, %File%
    FileRead, Bin, *c %File%  
    DllCall( "Crypt32.dll\CryptBinaryToString" ( A_IsUnicode ? "W" : "A" ) 
        , UInt,&Bin, UInt,Size, UInt,1, UInt,0, UIntP,TChars, "CDECL Int" ) 
    VarSetCapacity( OutData, Req := TChars * ( A_IsUnicode ? 2 : 1 ) ) 
    DllCall( "Crypt32.dll\CryptBinaryToString" ( A_IsUnicode ? "W" : "A" ) 
        , UInt,&Bin, UInt,Size, UInt,1, Str,OutData, UIntP,Req, "CDECL Int" ) 
    Return OutData 
}    





 

DATAInit: 

DATA1 = 
(
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
)

DATA2 = 
(
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
)


Return
   
Post's attachments

Base64ToPic.ahk 12.16 kb, 43 downloads since 2014-04-07 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui