Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 28
Рейтинг: 0
#1: 2018-01-22 18:07:11 ЛС | профиль | цитата
Добрый вечер, уважаемые коллеги!

Я полностью уверен, что вы всегда готовы выслушать и найти решение проблемы практически каждого, кто обращается к вам. И, надо отдать должное, вы многим помогли.
Именно поэтому я прошу у вас помощи.

В общем-то, программа разрабатывается как сборник тестов. Правда каждый вопрос содержит картинку (около 600/600 пикселей), а их общее количество более 250, из-за чего программа просто не потянет если их оставить внутри. Следовательно, картинки нужно хранить вне программы, но здесь возникает вопрос: как сделать так, чтобы не давать пользователю открытый доступ к картинкам, то есть желательно просто зашифровать их. И причём так, чтобы получалась, примерно, следующая картина:
1. нажимая на кнопку, картинка (лежащая в папке с программы) расшифровывается, читается и появляется на экране;
2. расшифрованная картинка должна появлялась в программе, а не сначала в папке, а потом уже в программе;
3. зашифрованную картинку не возможно открыть фото-редактором.

Заранее благодарю за любое содействие в этом непростом деле.

Редактировалось 2 раз(а), последний 2018-01-22 18:09:03
карма: 0

0
Ответов: 4628
Рейтинг: 749
#2: 2018-01-22 18:15:20 ЛС | профиль | цитата
Берешь подходящий компонент шифрования, шифруешь картинки в папку для программы. В программе загружаешь зашифрованный файл, расшифровываешь в MemoryStream, оттуда загружаешь в компонент отображения картинки. С чем из этого есть проблемы?

Редактировалось 1 раз(а), последний 2018-01-23 13:01:57
карма: 26

0
Ответов: 5227
Рейтинг: 587
#3: 2018-01-22 18:33:16 ЛС | профиль | цитата
Netspirit писал(а):
С чем из этого есть проблемы?

Известно с чем, с рыбой
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 28
Рейтинг: 0
#4: 2018-01-22 19:08:06 ЛС | профиль | цитата
Netspirit, к сожалению, не знаю как сделать так, чтобы загруженная картинка расшифровывалась прямо в программе.
Получается только так http://forum.hiasm.com/getfile/38302.

Редактировалось 4 раз(а), последний 2018-01-22 19:16:36
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2018-01-22 19:28:55 ЛС | профиль | цитата
Dapofig писал(а):
1. нажимая на кнопку, картинка (лежащая в папке с программы) расшифровывается, читается и появляется на экране;
2. расшифрованная картинка должна появлялась в программе, а не сначала в папке, а потом уже в программе;
3. зашифрованную картинку не возможно открыть фото-редактором.
БД SQLite.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8921
Рейтинг: 823
#6: 2018-01-22 19:41:30 ЛС | профиль | цитата
Dapofig, по простому и не очень быстро:
Просто картинка


Add(MainForm,2953706,84,245)
{
Width=377
Height=235
Caption="Crypt-DeCrypt image"
}
Add(Button,9628864,84,56)
{
Left=10
Top=140
Width=40
Caption="Open"
link(onClick,5452223:doExecute,[])
}
Add(Image,15816066,399,91)
{
Left=10
Top=10
Width=160
Height=120
Point(ImageWidth)
Point(ImageHeight)
link(Bitmap,2338950:Var1,[(405,82)(377,82)])
}
Add(Image,12515042,399,357)
{
Left=185
Top=10
Width=160
Height=120
link(Bitmap,16756896:Var1,[(405,348)(377,348)])
}
Add(Button,1194282,84,140)
{
Left=55
Top=140
Width=65
Caption="Crypt >>"
link(onClick,7146264:doEvent1,[])
}
Add(Edit,75778,161,203)
{
Left=45
Top=165
Width=85
Text="123456"
DataType=2
}
Add(ODialog,5452223,133,56)
{
link(onExecute,141407:doLoad,[])
}
Add(PictureStream,141407,189,56)
{
link(onLoad,11749062:doEvent1,[])
link(Bitmap,9304353:Var1,[(202,47)(258,47)(258,110)])
}
Add(Img_GetPoint,10244225,266,147)
{
link(onGetPixel,7677414:doGetRGB,[])
link(Bitmap,9304353:Var2,[])
link(X,14290720:Var2,[])
link(Y,14281735:Var2,[])
}
Add(For,9034816,161,147)
{
IncludeEnd=1
link(onEvent,16365150:doFor,[])
link(onStop,6219287:doWork2,[(200,160)(200,97)])
link(End,897095:Width,[(174,116)(279,116)])
}
Add(For,16365150,217,147)
{
IncludeEnd=1
link(onEvent,10244225:doGetPixel,[])
link(End,897095:Height,[(230,124)(286,124)])
}
Add(ToRGB,7677414,308,147)
{
link(onResult,1855169:doRandom,[(345,153)(345,192)(207,192)(207,237)])
}
Add(Img_Point,2688082,371,147)
{
Point(X)
Point(Y)
Point(Color)
link(Bitmap,2338950:Var2,[])
link(X,14290720:Var3,[(384,131)])
link(Y,14281735:Var3,[(391,138)])
link(Color,8911051:Result,[(398,138)(477,138)(477,271)(433,271)])
}
Add(GetDataEx,14290720,273,126)
{
Angle=3
link(Data,9034816:Position,[(208,131)(208,187)(167,187)])
}
Add(GetDataEx,9304353,266,105)
{
link(Data,897095:Bitmap,[])
}
Add(Button,13523373,84,91)
{
Left=125
Top=140
Width=40
Caption="Save"
link(onClick,12702545:doExecute,[])
}
Add(Button,6051066,84,322)
{
Left=190
Top=140
Width=40
Caption="Open"
link(onClick,14569606:doExecute,[])
}
Add(Button,15403106,84,406)
{
Left=235
Top=140
Width=65
Caption="DeCrypt >>"
link(onClick,7061782:doEvent1,[])
}
Add(Edit,6164446,161,469)
{
Left=225
Top=165
Width=85
Text="123456"
DataType=2
}
Add(Button,14722446,84,357)
{
Left=305
Top=140
Width=40
Caption="Save"
link(onClick,10810705:doExecute,[])
}
Add(SDialog,12702545,133,91)
{
Filter="BMP|*.bmp"
link(onExecute,141407:doSave,[(172,97)(172,69)])
}
Add(Random,1855169,217,231)
{
Max=255
link(onRandom,12431692:doCalc,[])
}
Add(Random,7616809,301,231)
{
Max=255
link(onRandom,2764819:doCalc,[])
}
Add(Random,4989746,385,231)
{
Max=255
link(onRandom,8911051:doCalc,[])
}
Add(DoData,10449778,161,245)
{
link(onEventData,1855169:doRandSeed,[])
link(Data,75778:Text,[])
}
Add(Hub,7146264,126,140)
{
link(onEvent1,10449778:doData,[(151,146)(151,251)])
link(onEvent2,9034816:doFor,[])
}
Add(MathParse,12431692,259,231)
{
MathStr="(%1 + %2) mod 256"
ResultType=0
link(onResult,7616809:doRandom,[])
link(X2,7677414:R,[(272,204)(314,204)])
}
Add(MathParse,2764819,343,231)
{
MathStr="(%1 + %2) mod 256"
ResultType=0
link(onResult,4989746:doRandom,[])
link(X2,7677414:G,[(356,204)(321,204)])
}
Add(MathParse,8911051,427,231)
{
DataCount=4
MathStr="((%1 + %2) mod 256)*65536 + %3*256 + %4"
ResultType=0
link(onResult,2688082:doDraw,[(466,237)(466,188)(361,188)(361,153)])
link(X2,7677414:B,[(440,197)(328,197)])
link(X3,2764819:Result,[(447,222)(380,222)(380,271)(349,271)])
link(X4,12431692:Result,[(454,213)(296,213)(296,272)(265,272)])
}
Add(Bitmap,897095,266,56)
{
Point(Width)
Point(Height)
}
Add(GetDataEx,2338950,371,105)
{
Angle=3
link(Data,9304353:Var3,[])
}
Add(Hub,11749062,224,56)
{
link(onEvent1,897095:doLoad,[])
link(onEvent2,6219287:doWork1,[(249,69)])
}
Add(HubEx,6219287,245,91)
{
link(onEvent,15816066:doLoad,[])
}
Add(GetDataEx,14281735,280,133)
{
Angle=3
link(Data,16365150:Position,[(251,138)(251,187)(223,187)])
}
Add(ODialog,14569606,133,322)
{
link(onExecute,2390508:doLoad,[])
}
Add(PictureStream,2390508,189,322)
{
link(onLoad,4390139:doEvent1,[])
link(Bitmap,12828551:Var1,[(202,313)(258,313)(258,376)])
}
Add(Img_GetPoint,7483037,266,413)
{
link(onGetPixel,15419936:doGetRGB,[])
link(Bitmap,12828551:Var2,[])
link(X,9837593:Var2,[])
link(Y,10313324:Var2,[])
}
Add(For,11666070,161,413)
{
IncludeEnd=1
link(onEvent,2995463:doFor,[])
link(onStop,9509541:doWork2,[(200,426)(200,363)])
link(End,390776:Width,[(174,382)(279,382)])
}
Add(For,2995463,217,413)
{
IncludeEnd=1
link(onEvent,7483037:doGetPixel,[])
link(End,390776:Height,[(230,390)(286,390)])
}
Add(ToRGB,15419936,308,413)
{
link(onResult,8431992:doRandom,[(345,419)(345,458)(207,458)(207,503)])
}
Add(Img_Point,3424276,371,413)
{
Point(X)
Point(Y)
Point(Color)
link(Bitmap,16756896:Var2,[])
link(X,9837593:Var3,[(384,397)])
link(Y,10313324:Var3,[(391,404)])
link(Color,10420312:Result,[(398,404)(477,404)(477,537)(433,537)])
}
Add(GetDataEx,9837593,273,392)
{
Angle=3
link(Data,11666070:Position,[(208,397)(208,453)(167,453)])
}
Add(GetDataEx,12828551,266,371)
{
link(Data,390776:Bitmap,[])
}
Add(SDialog,10810705,133,357)
{
Filter="BMP|*.bmp"
link(onExecute,2390508:doSave,[(172,363)(172,335)])
}
Add(Random,8431992,217,497)
{
Max=255
link(onRandom,16733314:doCalc,[])
}
Add(Random,15614526,301,497)
{
Max=255
link(onRandom,15850101:doCalc,[])
}
Add(Random,3387954,385,497)
{
Max=255
link(onRandom,10420312:doCalc,[])
}
Add(DoData,11564634,161,511)
{
link(onEventData,8431992:doRandSeed,[])
link(Data,6164446:Text,[])
}
Add(Hub,7061782,126,406)
{
link(onEvent1,11564634:doData,[(151,412)(151,517)])
link(onEvent2,11666070:doFor,[])
}
Add(MathParse,16733314,259,497)
{
MathStr="(256 - %1 + %2) mod 256"
ResultType=0
link(onResult,15614526:doRandom,[])
link(X2,15419936:R,[(272,470)(314,470)])
}
Add(MathParse,15850101,343,497)
{
MathStr="(256 - %1 + %2) mod 256"
ResultType=0
link(onResult,3387954:doRandom,[])
link(X2,15419936:G,[(356,470)(321,470)])
}
Add(MathParse,10420312,427,497)
{
DataCount=4
MathStr="((256 - %1 + %2) mod 256)*65536 + %3*256 + %4"
ResultType=0
link(onResult,3424276:doDraw,[(466,503)(466,454)(361,454)(361,419)])
link(X2,15419936:B,[(440,463)(328,463)])
link(X3,15850101:Result,[(447,488)(380,488)(380,537)(349,537)])
link(X4,16733314:Result,[(454,479)(296,479)(296,538)(265,538)])
}
Add(Bitmap,390776,266,322)
{
Point(Width)
Point(Height)
}
Add(GetDataEx,16756896,371,371)
{
Angle=3
link(Data,12828551:Var3,[])
}
Add(Hub,4390139,224,322)
{
link(onEvent1,390776:doLoad,[])
link(onEvent2,9509541:doWork1,[(249,335)])
}
Add(HubEx,9509541,245,357)
{
link(onEvent,12515042:doLoad,[])
}
Add(GetDataEx,10313324,280,399)
{
Angle=3
link(Data,2995463:Position,[(251,404)(251,453)(223,453)])
}

Есть у меня и побыстрее через FileStream, но надо поискать на компьютере (забыл название)
карма: 19

0
Ответов: 28
Рейтинг: 0
#7: 2018-01-22 19:52:10 ЛС | профиль | цитата
Большое спасибо Леонид, правда
Леонид писал(а):
не очень быстро

Идеально подходит компонент AESCipher (от Netspirit), но только не понятно как с его помощью выполнить такую задачу.

Редактировалось 1 раз(а), последний 2018-01-22 19:52:22
карма: 0

0
Ответов: 5227
Рейтинг: 587
#8: 2018-01-22 20:10:27 ЛС | профиль | цитата
Сам вопрос не в том разделе и название темы не раскрывает суть проблемы, зато рыбаков с рыбой похоже хоть отбавляй Ну что, тут только остаётся "Чешу я лоб, чешу затылок, заборы наши из досок а мебель из опилок"
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 28
Рейтинг: 0
#9: 2018-01-23 13:00:56 ЛС | профиль | цитата
Решение
http://forum.hiasm.com/getfile/38304

Редактировалось 1 раз(а), последний 2018-01-23 13:02:16
карма: 0

0
Ответов: 4628
Рейтинг: 749
#10: 2018-01-23 13:34:49 ЛС | профиль | цитата
Dapofig писал(а):
но только не понятно как с его помощью выполнить такую задачу




Add(MainForm,218580,42,56)
{
Width=377
Height=235
Caption="Crypt-DeCrypt image"
}
Add(Button,9628864,581,14)
{
Left=10
Top=140
Width=40
Caption="Open"
link(onClick,5452223:doExecute,[])
}
Add(Image,15816066,749,14)
{
Left=10
Top=10
Width=160
Height=120
Point(ImageWidth)
Point(ImageHeight)
}
Add(Image,12515042,1022,609)
{
Left=185
Top=10
Width=160
Height=120
}
Add(Button,1194282,336,182)
{
Left=55
Top=140
Width=95
Caption="Encrypt and Save"
link(onClick,12702545:doExecute,[])
}
Add(Edit,75778,672,245)
{
Left=10
Top=165
Width=85
Text="123456"
DataType=2
}
Add(ODialog,5452223,630,14)
{
Filter="Изображение BMP (*.bmp)|*.bmp|Изображение JPEG (*.jpg)|*.jpg|Все файлы (*.*)|*.*|"
Title="Выбор изображения"
FileName=""
link(onExecute,141407:doLoad,[])
}
Add(PictureStream,141407,686,14)
{
link(onLoad,15816066:doLoad,[])
}
Add(Button,6051066,336,637)
{
Left=210
Top=140
Width=105
Caption="Open Encrypted"
link(onClick,14569606:doExecute,[])
}
Add(Edit,6164446,602,511)
{
Left=225
Top=165
Width=85
Text="123456"
DataType=2
}
Add(SDialog,12702545,392,182)
{
Filter="Зашифрованное изображение BMP (*.bmp.enc)|*.bmp.enc"
Title="Сохранение"
FileName=""
link(onExecute,1928830:doEvent1,[])
}
Add(DoData,10449778,595,105)
{
link(onEventData,16398183:doPosition,[])
}
Add(ODialog,14569606,385,637)
{
Filter="Зашифрованное изображение BMP (*.bmp.enc)|*.bmp.enc"
Title="Открытие изображения"
FileName=""
link(onExecute,7024419:doOpen,[])
}
Add(AESCipher,13347155,665,308)
{
Point(doEncryptStream)
Point(SrcStream)
Point(DstStream)
Point(Count)
link(onResult,174773:doMessage,[])
link(onError,1437305:doMessage,[(750,328)(750,363)])
link(Password,75778:Text,[])
link(SrcStream,27327:Var3,[(699,145)])
link(DstStream,11939445:Stream,[(706,296)(632,296)(632,380)(559,380)])
link(Count,16398183:Size,[(713,136)(678,136)])
}
Add(BitmapStream,2098176,665,175)
{
link(Stream,27327:Var2,[])
link(Bitmap,15816066:ImageBitmap,[(678,159)(755,159)])
}
Add(MemoryStream,16398183,665,91)
{
Point(doPosition)
}
Add(Hub,1928830,455,182)
{
OutCount=3
link(onEvent1,11591762:doEvent1,[])
link(onEvent2,11939445:doOpen,[(515,195)(515,342)])
link(onEvent3,16398183:doClear,[(497,202)(497,104)])
}
Add(Hub,11591762,539,182)
{
link(onEvent1,2098176:doWrite,[])
link(onEvent2,10449778:doData,[(585,195)(585,111)])
}
Add(FileStream,11939445,553,336)
{
Mode=1
link(onLoad,6915247:doEvent1,[])
}
Add(GetDataEx,27327,665,140)
{
link(Data,16398183:Stream,[])
}
Add(Hub,6915247,595,336)
{
link(onEvent1,13347155:doEncryptStream,[])
link(onEvent2,11939445:doClose,[(621,349)(621,391)(541,391)(541,349)])
}
Add(Message,174773,777,308)
{
Message="Зашифрованый файл сохранен!"
Caption="Информация"
Icon=4
}
Add(Message,1437305,777,357)
{
Caption="Ошибка шифрования"
Icon=1
}
Add(DoData,12652475,833,525)
{
link(onEventData,16768355:doPosition,[])
}
Add(AESCipher,7097538,595,609)
{
Point(SrcStream)
Point(DstStream)
Point(Count)
Point(doDecryptStream)
link(onResult,9963595:doEvent1,[(679,615)(679,608)])
link(onErrorPassword,11585909:doMessage,[])
link(onError,7296724:doMessage,[(680,629)(680,664)])
link(Password,6164446:Text,[])
link(SrcStream,7024419:Stream,[(629,597)(563,597)(563,691)(489,691)])
link(DstStream,12308624:Var1,[(636,565)])
link(Count,7024419:Size,[(643,582)(556,582)(556,683)(496,683)])
}
Add(BitmapStream,3993290,903,609)
{
link(onRead,10861664:doEvent1,[])
link(Stream,12308624:Var2,[])
}
Add(MemoryStream,16768355,903,511)
{
Point(doPosition)
}
Add(Hub,9963595,777,602)
{
OutCount=3
link(onEvent1,12652475:doData,[(812,608)(812,531)])
link(onEvent2,3993290:doRead,[])
link(onEvent3,16768355:doClear,[(882,622)(882,524)])
}
Add(FileStream,7024419,483,637)
{
link(onLoad,16393140:doEvent1,[])
}
Add(GetDataEx,12308624,903,560)
{
link(Data,16768355:Stream,[])
}
Add(Hub,16393140,525,637)
{
link(onEvent1,7097538:doDecryptStream,[])
link(onEvent2,7024419:doClose,[(577,650)(577,700)(471,700)(471,650)])
}
Add(Message,6008702,980,616)
{
Message="Картинка загружена."
Caption="Информация"
Icon=4
}
Add(Message,7296724,707,658)
{
Caption="Ошибка расшифровки"
Icon=1
}
Add(Message,11585909,707,616)
{
Message="Неверно указан пароль!"
Caption="Ошибка расшифровки"
Icon=3
}
Add(Hub,10861664,952,609)
{
link(onEvent1,12515042:doLoad,[])
link(onEvent2,6008702:doMessage,[])
}
карма: 26

0
Ответов: 28
Рейтинг: 0
#11: 2018-01-23 13:39:00 ЛС | профиль | цитата
Netspirit, большое спасибо! Вы просто гений
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#12: 2018-01-23 14:19:04 ЛС | профиль | цитата
То же самое на стандартных элементах. Тк использование нестандартных элементов нарушает совместимость для остальных пользователей

Схема

Add(MainForm,218580,77,168)
{
Width=377
Height=235
Caption="Crypt-DeCrypt image"
}
Add(Button,9628864,357,63)
{
Left=10
Top=140
Width=40
Caption="Open"
link(onClick,5452223:doExecute,[])
}
Add(Image,15816066,525,63)
{
Left=10
Top=10
Width=160
Height=120
Point(ImageWidth)
Point(ImageHeight)
}
Add(Image,12515042,714,539)
{
Left=185
Top=10
Width=160
Height=120
}
Add(Button,1194282,77,231)
{
Left=55
Top=140
Width=95
Caption="Encrypt and Save"
link(onClick,12702545:doExecute,[])
}
Add(Edit,75778,441,287)
{
Left=10
Top=165
Width=85
Text="123456"
DataType=2
}
Add(ODialog,5452223,406,63)
{
Filter="Изображение BMP (*.bmp)|*.bmp|Изображение JPEG (*.jpg)|*.jpg|Все файлы (*.*)|*.*|"
Title="Выбор изображения"
FileName=""
link(onExecute,141407:doLoad,[])
}
Add(PictureStream,141407,462,63)
{
link(onLoad,15816066:doLoad,[])
}
Add(Button,6051066,77,525)
{
Left=210
Top=140
Width=105
Caption="Open Encrypted"
link(onClick,14569606:doExecute,[])
}
Add(Edit,6164446,343,469)
{
Left=225
Top=165
Width=85
Text="123456"
DataType=2
}
Add(SDialog,12702545,133,231)
{
Filter="Зашифрованное изображение BMP (*.bmp.enc)|*.bmp.enc"
Title="Сохранение"
FileName=""
link(onExecute,12925532:doValue,[])
}
Add(DoData,10449778,371,154)
{
link(onEventData,16398183:doPosition,[])
}
Add(ODialog,14569606,126,525)
{
Filter="Зашифрованное изображение BMP (*.bmp.enc)|*.bmp.enc"
Title="Открытие изображения"
FileName=""
link(onExecute,7024419:doOpen,[])
}
Add(BitmapStream,2098176,441,224)
{
link(Stream,27327:Var2,[])
link(Bitmap,15816066:ImageBitmap,[(454,208)(531,208)])
}
Add(MemoryStream,16398183,441,140)
{
Point(doPosition)
}
Add(Hub,1928830,231,231)
{
OutCount=3
link(onEvent1,11591762:doEvent1,[])
link(onEvent2,2036368:doConvert,[(256,244)(256,349)])
link(onEvent3,16398183:doClear,[(273,251)(273,153)])
}
Add(Hub,11591762,315,231)
{
link(onEvent1,2098176:doWrite,[])
link(onEvent2,10449778:doData,[(361,244)(361,160)])
}
Add(FileStream,11939445,623,329)
{
Mode=1
AutoCopy=0
Point(doCopyFromStream)
link(FileName,12925532:Value,[(629,271)(188,271)])
}
Add(GetDataEx,27327,441,189)
{
link(Data,16398183:Stream,[])
}
Add(Message,174773,623,378)
{
Message="Зашифрованый файл сохранен!"
Caption="Информация"
Icon=4
}
Add(Message,1437305,770,385)
{
Caption="Ошибка шифрования/дешифрования"
Icon=1
}
Add(DoData,12652475,525,483)
{
link(onEventData,16768355:doPosition,[])
}
Add(BitmapStream,3993290,595,539)
{
link(onRead,10861664:doEvent1,[])
link(Stream,16768355:Stream,[])
}
Add(MemoryStream,16768355,595,469)
{
Point(doPosition)
}
Add(Hub,9963595,455,525)
{
OutCount=4
link(onEvent1,16768355:doCopy,[(480,531)(480,475)])
link(onEvent2,12652475:doData,[(494,538)(494,489)])
link(onEvent3,3993290:doRead,[])
link(onEvent4,16768355:doClear,[(564,552)(564,482)])
}
Add(FileStream,7024419,182,525)
{
link(onLoad,16393140:doEvent1,[])
}
Add(Hub,16393140,238,525)
{
link(onEvent1,4936526:doConvert,[])
link(onEvent2,7024419:doClose,[(263,538)(263,566)(172,566)(172,538)])
}
Add(Message,6008702,672,546)
{
Message="Картинка загружена."
Caption="Информация"
Icon=4
}
Add(Hub,10861664,644,539)
{
link(onEvent1,12515042:doLoad,[])
link(onEvent2,6008702:doMessage,[])
}
Add(DeCrypt,13176887,336,525)
{
Mode=7
HashMode=0
Point(onError)
link(onDeCrypt,620174:doConvert,[])
link(Key,6164446:Text,[])
link(onError,7933554:doWork2,[(382,538)(382,426)])
}
Add(EnCrypt,3985395,434,343)
{
Mode=7
HashMode=0
Point(onError)
link(onEnCrypt,5358436:doConvert,[])
link(Key,75778:Text,[])
link(onError,7933554:doWork1,[(508,356)])
}
Add(StreamConvertor,2036368,371,343)
{
Mode=6
Point(Data)
link(onResult,3985395:doEnCrypt,[])
link(Data,27327:Var1,[(377,194)])
}
Add(StreamConvertor,5358436,518,343)
{
Mode=7
Point(Data)
link(onResult,5934038:doEvent1,[])
}
Add(Memory,12925532,182,231)
{
link(onData,1928830:doEvent1,[])
}
Add(Hub,5934038,574,343)
{
link(onEvent1,11939445:doCopyFromStream,[])
link(onEvent2,174773:doMessage,[(613,356)(613,384)])
}
Add(StreamConvertor,4936526,280,525)
{
Mode=6
Point(Data)
link(onResult,13176887:doDeCrypt,[])
}
Add(StreamConvertor,620174,399,525)
{
Mode=7
Point(Data)
link(onResult,9963595:doEvent1,[])
}
Add(StrList,14371271,714,378)
{
Strings=#8:NO_ERROR|23:ERROR_INVALID_PARAMETER|19:ERROR_INCORRECT_KEY|21:ERROR_ACQUIRE_CONTEXT|20:ERROR_GENERATION_KEY|24:ERROR_GENERATION_KEYPAIR|18:ERROR_GET_USER_KEY|16:ERROR_DERIVE_KEY|13:ERROR_ENCRYPT|13:ERROR_DECRYPT|17:ERROR_CREATE_HASH|15:ERROR_HASH_DATA|20:ERROR_GET_HASH_PARAM|17:ERROR_SIGNED_HASH|20:ERROR_EXPORT_KEYPAIR|22:ERROR_EXPORT_PUBLICKEY|23:ERROR_EXPORT_SESSIONKEY|24:ERROR_EXPORT_EXCHANGEKEY|20:ERROR_IMPORT_KEYPAIR|22:ERROR_IMPORT_PUBLICKEY|23:ERROR_IMPORT_SESSIONKEY|24:ERROR_IMPORT_EXCHANGEKEY|26:ERROR_WRONG_CONTAINER_NAME|22:ERROR_CREATE_CONTAINER|22:ERROR_DELETE_CONTAINER|26:ERROR_CONTAINER_NOT_EXISTS|30:ERROR_CONTAINER_ALREADY_EXISTS|19:ERROR_NO_CONTAINERS|
Point(doGetString)
Point(onGetString)
link(onGetString,1437305:doMessage,[])
}
Add(HubEx,7933554,504,420)
{
link(onEvent,14371271:doGetString,[])
}


Используя в качестве загрузчика картинок Img_GDIFileProcessor можно снять ограничение на чтение картинок форматов, отличных от bmp

Редактировалось 1 раз(а), последний 2018-01-23 14:23:05
карма: 22

0
Ответов: 28
Рейтинг: 0
#13: 2018-01-23 14:42:03 ЛС | профиль | цитата
nesco, я очень благодарен Вам за помощь! Спасибо!

Редактировалось 1 раз(а), последний 2018-01-23 14:42:11
карма: 0

0
Ответов: 1926
Рейтинг: 172
#14: 2018-01-23 16:01:15 ЛС | профиль | цитата
У Netspirit и nesco хорошие схемы, но! Если исходная картинка не bmp, то она просто приводится к bmp, что увеличивает размер в разы, а это бессмысленно

nesco писал(а):
Используя в качестве загрузчика картинок Img_GDIFileProcessor можно снять ограничение на чтение картинок форматов, отличных от bmp

Я и сам думал, как Stream преобразовать в картинку без файла - и ничего не придумал
Img_GDIFileProcessor может это сделать? (Просто, пардон, у меня его нет - я давно не обновлялся, никак не могу собраться - ведь потом надо заново ставить нестандартные компоненты, коих у меня штук 30).
карма: 9
0
Ответов: 4628
Рейтинг: 749
#15: 2018-01-23 16:07:56 ЛС | профиль | цитата
3042 писал(а):
как Stream преобразовать в картинку без файла - и ничего не придумал
Хм, так компонент BitmapStream это делает. Для сохранения им же Bitmap сохраняешь в MemoryStream.
3042 писал(а):
что увеличивает размер в разы, а это бессмысленно
Ну, так и что мешает перед сохранением конвертнуть в JPEG?

Редактировалось 1 раз(а), последний 2018-01-23 16:09:02
карма: 26

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)