21. 007wan - 25 Декабря, 2017 - 08:05:19 - перейти к сообщению
А может еще сделать, что бы он определял какой фотографии из 90 шт нету и распаковывал их+еще надо, что бы не были изменены фотографии в процессе вывода, а то можно разукрасить, а он потом уже вывод сделает ИЛИ они уже загружены в loadimage и можно их удалять, разукрашивать итд? а что если я закрою программа изменю любую, запущу, а он потом загрузит в loadimage разукрашенную?
22. Zireael - 25 Декабря, 2017 - 09:46:31 - перейти к сообщению
Цитата:
А может еще сделать, что бы он определял какой фотографии из 90 шт нету и распаковывал их
Если какой-то картинки нет, то она будет добавлена в массив и сохранена.
code (Отобразить)
Цитата:
ИЛИ они уже загружены в loadimage и можно их удалять, разукрашивать итд?
Можно удалять. Только при следующем запуске придётся снова их делить и сохранять.
Цитата:
а что если я закрою программа изменю любую, запущу, а он потом загрузит в loadimage разукрашенную?
Естественно загрузит изменённую.
Цитата:
Еще есть такой вариант: вывести 1 фото, в котором много маленьких фото на экран.
сделать сейфимэйдж(расчитать где, что, как будет)
сделать сейфимэйдж(расчитать где, что, как будет)
Можно вывести диалог за пределами экрана, на него вывести картинку и сделать пачку скринов.
(Добавление)
Цитата:
Можно вывести диалог за пределами экрана, на него вывести картинку и сделать пачку скринов.
Собственно вот:
code (Отобразить)
23. 007wan - 26 Декабря, 2017 - 02:34:42 - перейти к сообщению
Zireael пишет:
Можно удалять. Только при следующем запуске придётся снова их делить и сохранять.
Zireael пишет:
Естественно загрузит изменённую.
Ну тогда может зациклить проверку, а так если нету, то загрузит, распакует, а если есть, то не надо
24. Zireael - 26 Декабря, 2017 - 02:50:36 - перейти к сообщению
Цитата:
Ну тогда может зациклить проверку
Оно и так уже есть. Недостающие будут распакованы.
CODE:
// проверяем все ли картинки есть
for(i=0;i<count_image;i++)
{
if (fopen (tempfolder()+format(i)+".bmp", "rb") > 0) // если картинка есть
for(i=0;i<count_image;i++)
{
if (fopen (tempfolder()+format(i)+".bmp", "rb") > 0) // если картинка есть
25. 007wan - 26 Декабря, 2017 - 02:52:11 - перейти к сообщению
Zireael пишет:
Цитата:
Ну тогда может зациклить проверку
Оно и так уже есть. Недостающие будут распакованы.
CODE:
// проверяем все ли картинки есть
for(i=0;i<count_image;i++)
{
if (fopen (tempfolder()+format(i)+".bmp", "rb") > 0) // если картинка есть
for(i=0;i<count_image;i++)
{
if (fopen (tempfolder()+format(i)+".bmp", "rb") > 0) // если картинка есть
Нет, я имел ввиду, что будет всегда зациклено, даже при работа любого скрипта, диалога итд, я это добавлю в луп
26. Zireael - 26 Декабря, 2017 - 02:55:25 - перейти к сообщению
Цитата:
что будет всегда зациклено, даже при работа любого скрипта
Смысл? Один раз загрузили картинки и забыли.
27. 007wan - 26 Декабря, 2017 - 03:01:50 - перейти к сообщению
Zireael пишет:
Цитата:
что будет всегда зациклено, даже при работа любого скрипта
Смысл? Один раз загрузили картинки и забыли.
Да, но если делать вывод через visualwindow, то он будет грузить картинки, которые не в loadimage, а те, которые по пути находятся, т.е те, которые распаковыны, а их можно изменить, итд, а мне нужно, что бы он выводил те, которые в массиве loadimage
28. Zireael - 26 Декабря, 2017 - 03:09:06 - перейти к сообщению
Цитата:
но если делать вывод через visualwindow, то он будет грузить картинки
Visual ничего не загружает, передается указатель на массив, а не путь к изображению.
Т. е. один раз загрузились картинки, дальше не важно что с ними делается. Они используются из памяти.
29. 007wan - 26 Декабря, 2017 - 04:06:44 - перейти к сообщению
Zireael пишет:
Цитата:
но если делать вывод через visualwindow, то он будет грузить картинки
Visual ничего не загружает, передается указатель на массив, а не путь к изображению.
Т. е. один раз загрузились картинки, дальше не важно что с ними делается. Они используются из памяти.
А ну тогда все круто)
(Добавление)
Можно последний код, пожалуйста и больше не буду вам компосировать мозги.
В общем мне нужно, что ты черная линия(или любой цвет, сам выберу) был вокруг:
кнопки, эдита, статика(на выбор, но мне лучше для статика, просто я не знаю для чего будет сделать сложнее)Т.е есть, к примеру, поле статик, мы знаем где оно распологается, какой размер итд(в коде прописано), и нужно, что бы чисто вокруг(есть поле эдит и буквально след. пиксилем(линией) будет черным цветом) поля было огорождение. Ну просто у меня статик не видно, и я хочу его как бы визуально показать границы, да и самому что бы видеть
(Добавление)
Я просто не хочу создавать там пискельные картинки и выводить их рядом со статиком, я помню код, который там создавался пиксель...
(Добавление)
CODE:
int i, j, k, l, m;
// вместо этого блока loadimage
// создание большой картинки 77*48, с 6 маленькими 19*19, между картинками расстояние 10 px
int image[77][48];
for(i=0;i<77;i++)
{
for(j=0;j<48;j++)
{
image[i][j]=16777164;
}
}
for(i=0;i<19;i++)
{
for(j=0;j<19;j++)
{
image[i][j]=3401712; image[i+29][j]=255; image[i+58][j]=7065132;
image[i][j+29]=16756239; image[i+29][j+29]=1997041; image[i+58][j+29]=12065654;
}
}
///////////////////////////////////////
// пишем 6 маленьких картинок 19*19 в 3х-мерный массив
int arr[6][19][19]; // количество картинок и их размер x*y
int stepX=29, stepY=29; // шаг между картинками
int sizeX=19, sizeY=19; // размер картинок
int countX=3, countY=2; // количество картинок по X и Y в большой картинке
i=0; // номер картинки в массиве arr
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=image[l+j*stepX][m+k*stepY];
}
}
i++;
}
}
// вывод
int posX=800, posY=500;
visualwindow(0, 0, 0, 77, 48, posX, posY, 100, #image[0][0]);
visualwindow(1, 0, 0, 19, 19, posX-100, posY+100, 100, #arr[0][0][0]);
visualwindow(2, 0, 0, 19, 19, posX-50, posY+100, 100, #arr[1][0][0]);
visualwindow(3, 0, 0, 19, 19, posX, posY+100, 100, #arr[2][0][0]);
visualwindow(4, 0, 0, 19, 19, posX+50, posY+100, 100, #arr[3][0][0]);
visualwindow(5, 0, 0, 19, 19, posX+100, posY+100, 100, #arr[4][0][0]);
visualwindow(6, 0, 0, 19, 19, posX+150, posY+100, 100, #arr[5][0][0]);
loop()sleep(100);
// вместо этого блока loadimage
// создание большой картинки 77*48, с 6 маленькими 19*19, между картинками расстояние 10 px
int image[77][48];
for(i=0;i<77;i++)
{
for(j=0;j<48;j++)
{
image[i][j]=16777164;
}
}
for(i=0;i<19;i++)
{
for(j=0;j<19;j++)
{
image[i][j]=3401712; image[i+29][j]=255; image[i+58][j]=7065132;
image[i][j+29]=16756239; image[i+29][j+29]=1997041; image[i+58][j+29]=12065654;
}
}
///////////////////////////////////////
// пишем 6 маленьких картинок 19*19 в 3х-мерный массив
int arr[6][19][19]; // количество картинок и их размер x*y
int stepX=29, stepY=29; // шаг между картинками
int sizeX=19, sizeY=19; // размер картинок
int countX=3, countY=2; // количество картинок по X и Y в большой картинке
i=0; // номер картинки в массиве arr
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=image[l+j*stepX][m+k*stepY];
}
}
i++;
}
}
// вывод
int posX=800, posY=500;
visualwindow(0, 0, 0, 77, 48, posX, posY, 100, #image[0][0]);
visualwindow(1, 0, 0, 19, 19, posX-100, posY+100, 100, #arr[0][0][0]);
visualwindow(2, 0, 0, 19, 19, posX-50, posY+100, 100, #arr[1][0][0]);
visualwindow(3, 0, 0, 19, 19, posX, posY+100, 100, #arr[2][0][0]);
visualwindow(4, 0, 0, 19, 19, posX+50, posY+100, 100, #arr[3][0][0]);
visualwindow(5, 0, 0, 19, 19, posX+100, posY+100, 100, #arr[4][0][0]);
visualwindow(6, 0, 0, 19, 19, posX+150, posY+100, 100, #arr[5][0][0]);
loop()sleep(100);
вот он
(Добавление)
у меня поле статик размерами 405,10
(Добавление)
Zireael , Просто я хочу еще вот чего: При запуске он распаковывает, загружает.
Можно выводить и так как они загружены на работу не повлияет, просто такой нюанс: А если закрыть программу и редактировать одну из картинок, то при запуске он ее загрузит, а мне надо, что бы он загружал именно эту картинку, но каким-то образом вычислял это редактированная фотка(загрузить заново тогда именно ту, которая редактирована) или нет(оставить как есть и загрузить в массив). Может как-то сделать через сумму цвета, я не знаю или может по пикселям вычислять какой он должен быть, а если другой, то... Ну это сложный процесс.
(Добавление)
Если никак, тогда один выход- удалять распакованные после загрузки в массив, и так будет всегда))
30. Zireael - 26 Декабря, 2017 - 06:07:51 - перейти к сообщению
Цитата:
А если закрыть программу и редактировать одну из картинок, то при запуске он ее загрузит, а мне надо, что бы он загружал именно эту картинку
Чтобы сравнить картинки, их придётся разделить, а если уж потратили время на разделение, то зачем сравнивать, перезаписать их да и всё.