Что нового

[Криптография] Криптография картинки

LuciferKo

Новичок
Сообщения
24
Репутация
0
Здравствуйте всем,я в Autoit продвинутый пользователь,но я столкнулся с задачей с которой некогда не сталкивался,можно как не будь спрятать картинку в проекте или поместить в dll, или еще что не будь,предложите что не будь и напишите как это сделать,спасибо за внимание,с меня +) :IL_AutoIt_1:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
LuciferKo, что за непонятное снижение репутации? The_Immortal дал вам ссылку на решение вашей задачи. Да, придется немного почитать, да, придется наморщить ум. Или вы хотели готовое решение с рабочим примером? Если так, то этот форум не для вас.
 

Sln

Знающий
Сообщения
45
Репутация
5
Вот рабочий пример и готовый код :whistle: :smile:

В два шага...

Шаг #1: создание файла ресурса (загоняем файл в переменную)
Код:
#include <FileConstants.au3>
#include <StringConstants.au3>

; files
$resource  = ''
$resource &= create_res('demo.jpg'	, '$pic0')	; jpeg
$resource &= create_res('demo.bmp'	, '$pic1')	; bmp
;$resource &= create_res('wait.gif'	, '$pic2')	; gif


$fw = FileOpen('my_resource.au3', $FO_OVERWRITE+$FO_BINARY)
If $fw = -1 Then Exit
FileWrite($fw, $resource)
FileClose($fw)

msgbox(0, @ComputerName, 'Create res ok!')



Func create_res($file, $var)
	$fh = FileOpen($file, $FO_BINARY)
	If $fh = -1 Then
		MsgBox(1, 1, 'File read error: ' & $file)
		Exit
	EndIf
	$res = FileRead($fh)
	FileClose($fh)

	$arr = StringRegExp($res, '(.{1,1024})', $STR_REGEXPARRAYGLOBALMATCH)

	For $i = 0 To UBound($arr) -1
		If $i = 0 Then
			$res = $var & '  = "' & $arr[$i] & '"' & @CRLF
		Else
			$res&= $var & ' &= "' & $arr[$i] & '"' & @CRLF
		EndIf
	Next

	Return($res)
EndFunc

Редактируем пути картинок и запускаем. Получаем my_resource.au3.

Этап #2: ползуемся
Код:
#include <GDIPlus.au3>
#include "my_resource.au3"                    ; <------------- тот самый, который в make_res.au3 делается.

$hGUI = GUICreate("GDI+", 400, 300)
GUISetState(@SW_SHOW)

; gdi
_GDIPlus_Startup()

$hB = _GDIPlus_BitmapCreateFromMemory(Binary($pic0))
$hG = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImage($hG, $hB, 0, 0)

_GDIPlus_GraphicsDispose($hG)
_GDIPlus_BitmapDispose($hB)

_GDIPlus_Shutdown()

MsgBox(0,@ScriptName,'ok?')
 
Верх