Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 322
Рейтинг: 8
#1: 2017-06-09 14:55:49 ЛС | профиль | цитата
Привет всем.
Начал делать программу, есть вопрос - как сделать чтобы фото сохранялись без уменьшения размера или как самому выставлять размер?
http://file.sampo.ru/7sqv56/

Редактировалось 2 раз(а), последний 2017-06-09 14:57:48
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 165
Рейтинг: 6
#2: 2017-06-10 20:48:38 ЛС | профиль | цитата
Dad2016, вкладывайте схему в теги code, а не на какие-то левые ресурсы, другим пользователям форума ваш вариант очень неудобен. Схема должна быть максимально упрощена и содержать только те элементы, которые необходимы для понимания сути вопроса.

Редактировалось 1 раз(а), последний 2017-06-10 22:19:43
карма: 4

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#3: 2017-06-10 21:06:24 ЛС | профиль | цитата
Я бы еще добавил, что наличие сторонних компонентов снижает вероятность помощи, тк не каждому хочется ставить у себя то, что ему совсем не нужно. И еще, если это работа с базой данных, то необходимо прикладывать файл базы данных.

Редактировалось 1 раз(а), последний 2017-06-10 21:08:09
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#4: 2017-06-10 21:27:51 ЛС | профиль | цитата
nesco писал(а):
Я бы еще добавил
Я бы тоже добавил, но иногда лучше промолчать.

Хотя пару вопросов задам:
Что будешь делать если у тебя будет несколько "Иванов Иван Иванович" ?
SELECT foto FROM note WHERE fio = '%1' Как думаешь, чьё фото загрузится ? Ответ: последнего принятого на работу Иванова Ивана Ивановича
DELETE FROM note WHERE fio = '%1' А здесь удалятся все полные тёзки.
И т.д. и т.п.
Поэтому каждому нужно присвоить ИНДИВИДУАЛЬНЫЙ НОМЕР.
В БД это делается так:
CREATE TABLE IF NOT EXISTS note( id INTEGER PRIMARY KEY, ..... и SELECT, DELETE, UPDATE делать по этому номеру, а не по ФИО.

И ещё одно.
Каждый запрос ДОЛЖЕН заканчиваться ";". Это не прихоть - просто запрос будет обрабатываться быстрее.

Редактировалось 5 раз(а), последний 2017-06-11 10:23:09
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#5: 2017-06-13 07:11:16 ЛС | профиль | цитата
Огромное спасибо всем за замечания, хотел полностью схему показать - поэтому на левый ресурс.
Отработаю каждое из замечаний.

Кусок схемы по которому был вопрос изначально.

Add(Image,14384757,469,336)
{
Left=5
Top=5
Width=120
Height=120
Point(onDblClick)
link(Bitmap,15619823:Bitmap,[])
link(onDblClick,14988390:doExecute,[(529,349)(529,317)(367,317)(367,286)])
}
Add(Img_Loader,15619823,469,280)
{
link(onLoad,12022459:doEvent1,[])
}
Add(ODialog,14988390,378,280)
{
Filter="BMP, GIF, JPG, JPEG, ICO, WMF, EMF, PNG, XBM, TIFF files (*.bmp;*.gif;*.ico;*wmf;*.emf;*.xbm;*.tiff;*.png;*.jpg;*.jpeg)|.bmp;*.gif;*.ico;*wmf;*.emf;*.xbm;*.tiff;*.png;*.jpg;*.jpeg|All files (*.*)|*.*"
link(onExecute,1185504:doEvent1,[])
}
Add(DropFile,6522652,378,329)
{
link(onDropFile,1185504:doEvent2,[(426,335)(426,293)])
}
Add(Hub,1185504,441,280)
{
InCount=3
OutCount=1
link(onEvent1,15619823:doLoad,[])
}
Add(Hub,12022459,511,280)
{
link(onEvent1,14384757:doLoad,[(533,286)(533,328)(454,328)(454,342)])
link(onEvent2,11130141:doLoadFromBitmap,[])
}
Add(Jpeg,11130141,553,273)
{
Quality=100
Point(FileName)
Point(doLoadFromBitmap)
}
Add(ButtonRush,8382852,364,224)
{
Left=430
Top=5
Width=115
Caption="Сохранить"
Glyphs=[]
RoundWidth=7
RoundHeight=7
link(onClick,346940:doEvent1,[])
}
Add(Hub,346940,420,224)
{
OutCount=5
link(onEvent1,11130141:doSave,[(541,230)(541,286)])
}

--- Добавлено в 2017-06-13 07:14:47

Tad писал(а):
Поэтому каждому нужно присвоить ИНДИВИДУАЛЬНЫЙ НОМЕР.

Использую твой способ присвоения ID (к сожалению начал неправильно, это исправлю)

Add(MultiElement,7030284,189,49)
{
@Color=5635840
}
BEGIN_SDK
Add(EditMulti,4091688,21,21)
{
EventCount=1
WorkCount=1
VarCount=1
Width=125
Height=109
VOffset=42
HOffset=70
link(doWork1,11730805:doQuery,[])
link(Var1,10908970:Value,[])
}
Add(Memory,10908970,91,63)
{
link(onData,4091688:onEvent1,[])
}
Add(DSC_Query,11730805,42,63)
{
SQL="SELECT case\r\nwhen count()=0 THEN 1 ELSE max(id)+1 END \r\nFROM note ;"
DSManager="parent.parent.dan"
link(onQuery,10908970:doValue,[])
}
END_SDK
Спасибо за указание правильного пути.

--- Добавлено в 2017-06-13 07:23:33

Tad писал(а):
CREATE TABLE IF NOT EXISTS note( id INTEGER PRIMARY KEY, ..... и SELECT, DELETE, UPDATE

если не трудно сбрось пожалуйста примеры готовых запросов.
Мне нужно разобраться в данном запросе - id присваивается строке (то есть если сделать запрос "SELECT * FROM note" в таблице первым столбцом выдаст ID? далее все остальные? или как?)
В любом случае у тебя получается объяснить лучше чем написано где то на сайтах!
Спасибо.

Редактировалось 2 раз(а), последний 2017-06-13 07:23:33
карма: 0

0
Ответов: 165
Рейтинг: 6
#6: 2017-06-13 07:47:50 ЛС | профиль | цитата
Dad2016, в твоей схеме изображение сохраняется с исходным размером.
Вот так (смотри вычисления в MathParse'ах над Resize'ом) можно влиять на исходный размер изображения. Ещё туда можно добавить условия, если хочешь масштабирование в зависимости от каких-то параметров.

Add(LineBreak,5571475,490,259)
{
Caption="y"
Type=1
link(Data,15619823:ImageHeight,[])
Primary=[6924287,133,-210]
}
Add(Image,14384757,476,329)
{
Left=5
Top=5
Width=120
Height=120
Point(onDblClick)
link(Bitmap,15619823:Bitmap,[])
link(onDblClick,14988390:doExecute,[(539,342)(539,240)(374,240)(374,209)])
}
Add(Img_Loader,15619823,476,203)
{
Point(ImageWidth)
Point(ImageHeight)
link(onLoad,12022459:doEvent1,[])
}
Add(ODialog,14988390,385,203)
{
Filter="BMP, GIF, JPG, JPEG, ICO, WMF, EMF, PNG, XBM, TIFF files (*.bmp;*.gif;*.ico;*wmf;*.emf;*.xbm;*.tiff;*.png;*.jpg;*.jpeg)|.bmp;*.gif;*.ico;*wmf;*.emf;*.xbm;*.tiff;*.png;*.jpg;*.jpeg|All files (*.*)|*.*"
link(onExecute,1185504:doEvent1,[])
}
Add(DropFile,6522652,385,252)
{
link(onDropFile,1185504:doEvent2,[(433,258)(433,216)])
}
Add(Hub,1185504,448,203)
{
InCount=3
OutCount=1
link(onEvent1,15619823:doLoad,[])
}
Add(Hub,12022459,574,203)
{
link(onEvent1,14384757:doLoad,[(602,209)(602,318)(459,318)(459,335)])
link(onEvent2,10278728:doResize,[])
}
Add(Jpeg,11130141,672,196)
{
Quality=100
Point(FileName)
Point(doLoadFromBitmap)
}
Add(ButtonRush,8382852,371,147)
{
Left=430
Top=5
Width=115
Caption="Сохранить"
Glyphs=[]
RoundWidth=7
RoundHeight=7
link(onClick,346940:doEvent1,[])
}
Add(Hub,346940,427,147)
{
OutCount=5
link(onEvent1,11130141:doSave,[(649,153)(649,209)])
}
Add(Resize,10278728,616,210)
{
link(onResult,11130141:doLoadFromBitmap,[])
link(Width,9647198:reCalc,[])
link(Height,6277983:reCalc,[])
}
Add(LineBreak,4953752,483,245)
{
Caption="x"
Type=1
link(Data,15619823:ImageWidth,[])
Primary=[7099704,133,-119]
}
Add(MathParse,9647198,616,161)
{
DataCount=1
MathStr="%1 / 2"
ResultType=0
Point(reCalc)
link(X1,7099704:Var,[])
}
Add(MathParse,6277983,623,77)
{
DataCount=1
MathStr="%1 / 2"
ResultType=0
Point(reCalc)
link(X1,6924287:Var,[])
}

карма: 4

0
Ответов: 322
Рейтинг: 8
#7: 2017-06-13 08:08:52 ЛС | профиль | цитата
Nickname писал(а):
в твоей схеме изображение сохраняется с исходным размером.

Пробую твою схему (убрал деление), исходное изображение 36кб после сохранения получается 8кб.
По идее должно сохранить как есть 36кб, но почему то уменьшает.
Сжатие пробовал по разному - результат не меняется.
Пробовал в MathParse'ах (*2), не даёт результат.

Редактировалось 1 раз(а), последний 2017-06-13 08:09:28
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#8: 2017-06-13 08:16:40 ЛС | профиль | цитата
Dad2016, а зачем вообще сжимать ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#9: 2017-06-13 08:29:57 ЛС | профиль | цитата
Tad, просто пробовал все варианты.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#10: 2017-06-13 08:32:58 ЛС | профиль | цитата
Add(Image,4517293,301,175)
{
Left=300
Top=175
ViewStyle=1
}
Просто выбери ViewStyle - Stretch и оно тебе само будет сжимать\расширять

Редактировалось 1 раз(а), последний 2017-06-13 08:35:44
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#11: 2017-06-13 08:42:05 ЛС | профиль | цитата
Tad писал(а):
Просто выбери ViewStyle - Stretch

изначально картинка без кубиков, после сохранения картинка меняет размер.
я так понимаю сохранение происходит через этот компонент:

Add(Jpeg,11130141,546,350)
{
Quality=100
Point(FileName)
Point(doLoadFromBitmap)
}
получается он и сжимает.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#12: 2017-06-13 08:48:56 ЛС | профиль | цитата
Dad2016 писал(а):
после сохранения картинка меняет размер
Не надо картинку сохранять. Просто копируешь картинку(фото) в свой каталог под именем, например, foto + id + расширение исходной.
Т.е. если ты выбрал Иванова с id=12 то его фото foto12.png
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 165
Рейтинг: 6
#13: 2017-06-13 08:57:19 ЛС | профиль | цитата
Dad2016, в каком формате исходная картинка? Просто компонент Jpeg, ожидаемо, сжимает изображение по собственному алгоритму с потерями. Сравнивать нужно не вес, а ширину и высоту конечного и исходного изображений.

--- Добавлено в 2017-06-13 09:00:24

Tad, если фото получено после сканирования паспорта, то оно может иметь размер 800x1066, например, а храниться в bmp (большой вес, т.к. без сжатия). Какой смысл копировать себе такое изображение, когда требуется лишь 120x120 (пример из схемы), а сам файл можно дополнительно сжать алгоритмом с потерями или без?

Редактировалось 1 раз(а), последний 2017-06-13 09:00:24
карма: 4

0
Ответов: 16884
Рейтинг: 1239
#14: 2017-06-13 11:30:50 ЛС | профиль | цитата
Nickname писал(а):
если фото получено после сканирования паспорта
Это "Учет кадров" и тут никаких "если".
Есть "Шаблон. Типовая форма приема на работу Т-2"
Если это программа "Просто поиграться", то сканируй паспорт и т.д.
Если это программа для нормальной работы, то соблюдай условия и требования своей страны.
Тут что детский сад ?
Вопроса никто не задавал : А как на фото добавить усы и бороду ?
Судя по всему дойдем и до этого...
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#15: 2017-06-13 13:06:58 ЛС | профиль | цитата
Tad писал(а):
Вопроса никто не задавал : А как на фото добавить усы и бороду ?

Эта программа будет простой заменой громоздкого ПО.
Через программу будет собираться в одном месте вся информация на людей (сканы документов (уже готовых) будут копироваться в папочку программы), будет просмотр этих документов, потом для удобства будет добавлена функция вывода на печать выбранных файлов. Ну максимум ещё будет создаваться архив (вместо удаления), и добавлю функцию напоминания смены удостоверения.
Ничего лишнего сейчас не нужно.
карма: 0

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