Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Наталья8
521 / 371 / 66
Регистрация: 09.03.2016
Сообщений: 3,934
RAD 2009-XE3

Загрузка - опознавание файла картинки (правильная ли это лестница)

23.10.2019, 21:58. Показов 708. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
if(ParamCount()==1)//----перетаскиванием на екзешник или двойным щелчком по ИКОНКЕ -----
        {
        Form1->Top=0; Form1->Left=0;
 
 Form1->OnMouseUp=EvMousUp; Form1->OnMouseDown=EvMousDown;//<====== Два мышиных события ????
 z_bmp=new Graphics::TBitmap;
             //-------------------------------------------
         //==============
                    try{
    if( ExtractFileExt(ParamStr(1)).LowerCase()==".jpg"  ||
        ExtractFileExt(ParamStr(1)).LowerCase()==".jpeg"){
  TJPEGImage *jp = new TJPEGImage();
jp->LoadFromFile(ParamStr(1));
        z_bmp->Assign(jp);
                    form_position();
             Form1->Timer3->Enabled=true; // Рисунок на канву
                  delete jp;
           } else {
     if(ExtractFileExt(ParamStr(1)).LowerCase()==".bmp"){
z_bmp->LoadFromFile(ParamStr(1));
                     form_position();
                Form1->Timer3->Enabled=true; // Рисунок на канву
           } else {
      //==============
    if (ExtractFileExt(ParamStr(1)).LowerCase()==".gif"){
 TGIFImage *Gif=new TGIFImage;
Gif->LoadFromFile(ParamStr(1));
 Gif->Animate=true; Gif->AnimationSpeed=85;
    z_bmp->Assign(Gif); protect=true;
                    form_position();
                   pict_change(Gif);// Вызываеться функция создавающая Image
          delete Gif;         //  и грузящая в него Gif.
          } else {
      //==============
    if (ExtractFileExt(ParamStr(1)).LowerCase()==".png"){
TPngImage *Png=new TPngImage;
Png->LoadFromFile(ParamStr(1));
         z_bmp->Assign(Png); protect=true;
                    form_position();
                   pict_change(Png);// Вызываеться функция создавающая Image
    delete Png;                        //  и грузящая в него Png.
          } else {
        //==============
    if (ExtractFileExt(ParamStr(1)).LowerCase()==".ico"){
           TIcon* ico=new TIcon; // иконка на Stretch не реагирует
 ico->LoadFromFile(ParamStr(1));
         z_bmp->Assign( ico);
                    form_position();
                   pict_change(ico);// Вызываеться функция создавающая Image
          // z_bmp->Assign(ico);
        // form_position();  ( Иконка не растягиваеться.. на канве растягиваеться )
     delete ico;
            } else throw -1; // Если ни одно расширение не совпало возбуждает исключение
                }    }   }   } // И попёрло проверять вставляя в контейнеры
                 }
                 catch(...){
                 try{
     TJPEGImage *jp = new TJPEGImage(); jp->LoadFromFile(ParamStr(1));
 z_bmp->Assign(jp); form_position(); Form1->Timer3->Enabled=true;
                  delete jp;
                  }
                  catch(...){
                  try{
          z_bmp->LoadFromFile(ParamStr(1));
                     form_position();
                Form1->Timer3->Enabled=true;
                    }
                 catch(...){
                 try{
           TGIFImage *Gif=new TGIFImage;
Gif->LoadFromFile(ParamStr(1));
 Gif->Animate=true; Gif->AnimationSpeed=85;
    z_bmp->Assign(Gif); protect=true;
                    form_position();
                   pict_change(Gif);
          delete Gif;
                    }
                 catch(...){
                 try{
             TPngImage *Png=new TPngImage;
      Png->LoadFromFile(ParamStr(1));
         z_bmp->Assign(Png); protect=true;
                    form_position();
                   pict_change(Png);
                     delete Png;
                      }
                 catch(...){
                 try{
          TIcon* ico=new TIcon;
 ico->LoadFromFile(ParamStr(1));
         z_bmp->Assign( ico);
     form_position();  pict_change(ico);
                delete ico;
             } catch(...){Application->Terminate();}
            }  }  }  }  } // Не совпало ни в один контейнер Terminate()
 
//---------------------------------------------------------------------------
        ///////////// ФУНКЦИЯ
 void form_position(){ // Делает пропорциональные размеры формы
     Form1->Width=z_bmp->Width; Form1->Height=z_bmp->Height;//<--Форма по TImage
          PicProp_H=z_bmp->Height; PicProp_W=z_bmp->Width;
     if(z_bmp->Height>Screen->Height)
{//-----если высота Image1 больше экрана то высота по экрану ширина по пропорции
      float kf=PicProp_H/PicProp_W; PicProp_H=Screen->Height;
      PicProp_W=PicProp_H/kf;
   Form1->Height=floor(PicProp_H); Form1->Width=floor(PicProp_W);
     } }
 
         ///////////// ФУНКЦИЯ
   //---------- Бросает на форму Image и грузит изображение в Image ---------
       template <typename Type> // объявление параметра шаблона функции
 void pict_change(Type Pict_x){
      if(img)return;
   img  = new TImage(Form1); //<<--  создаём Image под картинку (смотреть)
    img->Top=0; img->Left=0; img->Parent=Form1;
     img->Width= Form1->Width; img->Height= Form1->Height;
 img->OnMouseUp=Form1->ImgMousUp; img->OnMouseDown=Form1->ImgMousDown;//<====== Два мышиных события ????
         img->Stretch=true;//--------------для Image которого нету нихуя
       //img->Picture->Bitmap->Assign(Pict_x);  --- .gif не двигаеться
       img->Picture->Assign(Pict_x);
       if(Form_ind){delete Form_ind; Form_ind=NULL;}
   Form1->Timer4->Enabled=true;
         }
Добавлено через 1 минуту
Можно ли так делать и не отрезать ли верхнюю часть. Правильно ли так грузить файлы?

Добавлено через 1 минуту
Извините, ни как не вьеду, как это надо форматировать.

Добавлено через 4 минуты
Верхняя часть грузит по расширению, а нижняя по try catch, ловля исключений, примеривая образец в каждый контейнер.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2019, 21:58
Ответы с готовыми решениями:

Загрузка картинки в image с проверкой, не было ли это сделано ранее
как сделать что бы перед загрузкой картинки в image сначала проверилось загружена ли уже картинка? если да то что бы код прирывался а если...

Загрузка картинки из файла
Доброго времени суток! Вчера начал делать на qbasic'e простенькую игрушку, но у меня возникла небольшая проблема. Я просто замучался...

Загрузка картинки из файла
В visual c++ с использованием библиотеки sfml пытаюсь залить картинку map_t.loadFromFile(&quot;C:/tiles.png&quot;); , не получается ,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2019, 21:58
Помогаю со студенческими работами здесь

Загрузка картинки как и файла
Ребят,очень нужна ваша помощь...прошу вас,кто-нибудь пожалуйста помогите мне.Дело в том что я через админку в скрипте загружаю файл,как я...

Загрузка картинки (имя картинки заносится в базу, но на сервер она не закачивается)
Добрый вечер! Друзья выручайте... Набросал код (кое что взял с Интернета) для загрузки картинок: &lt;?php if (isset($_FILES)) { ...

Загрузка картинки на сервер по ссылке, отправка, удаление картинки
Какие есть методы, чтобы: а) Загрузить на сервер в папку ../temp картинку по ссылке (например,...

Это правильная логическая схема на транзисторах?
Я нашел вот такую схему (XNOR2), хотелось узнать правильная ли она, будет работать нормально? Именно на транзисторах pmos и nmos надо,...

Насколько это хорошая/правильная конфигурация? (64к в сумме) в основном для работы и GTA 5
Собираю ПК, в основном для работы; играю немного, но очень хотелось бы поиграть в GTA 5:) (на высоких 1440p) Оцените пожалуйста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru