Не поддерживается формат JPG

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

maelz
Сообщения: 47
Зарегистрирован: 10 сен 2005, 18:45

При помещении на форму компонента OpenPictureDialog1 в фильтре уже есть формат jpg и jpeg, но при компиляции в списке поддерживаемых форматов при открытии диалога jpg отсутствуют.
Помогите что-ли...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Надо удалить из фильтров автоматически созданные записи относительно jpeg и jpg и создать свою. Все будет работать.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

а может стоит добавить в юзез JPEG ?
С уважением, Lost Angel...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

А вот такой вопрос. Мне нужно разбить изображение на квадратики и раскидать их по форме (типа паззла). Изображение лежит в файле jpg. Сначала я попробовал сделать битмап и загрузить в него этот файл, но он не согласился, нет, мол, только бмп. Тогда я создал image, загрузил в него этот jpg, а куски пытался вырезать и врисовать на форму функцией bitblt. Выдает ошибку Can only modify an image if it cotains a bitmap. Как после начала программы перегнать jpg, загруженный в image, в битмап?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Попробуй создать несколько ячеек и в каждую грузи по маленькой картинке...
[syntax=Delphi] [/syntax]
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Невозможно, количество картинок, на которые разбивается основная, задаются юзером. Среднее разбиение - 840х560 разбивается на квадратики 40х40, получается около 300 квадратиков.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Я сталкивался с подобным.
Дело в том, что у Image есть свойство Picture В котором храниться картинка. Причем, если картинка загружается в формате JPG в Picture.bitmap пусто и при редактировании вылетает ошибка. Я обходил это таким путем (кусок кода для открывания JPEG картинки в Image1 с преобразованием):

Код: Выделить всё

if OpenPictureDialog1.Execute then
with TBitMap.Create do try
  Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
  Width := Image1.Picture.Width;
  Height := Image1.Picture.Height;
  Canvas.Draw(0, 0, Image1.Picture.Graphic);
  Image1.Picture.Bitmap.Width := Width;
  Image1.Picture.Bitmap.Height := Height;
  BitBlt(Image1.Picture.Bitmap.Canvas.Handle, 0, 0, Width, Height,
    Canvas.Handle, 0, 0, SRCCOPY);
finally
  Free;
end;
С уважением, Lost Angel...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

LAngel, спасибо!
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Сорри, поторопился я. Что-то не работает. Сам имадж преобразовывается вроде правильно, лежит себе на форме, как будто его и не трогали. Попытался я вырезать куски из Image.canvas, кидать их на форму через bitblt - ничего не кидает. Решил: может, я координаты неправильно нахожу? Попробовал втупую перенести кусок имаджа на форму:
Form1.Canvas.CopyMode:=cmsrccopy;
form1.Canvas.CopyRect(rect(0,0,100,100),image1.Canvas,rect(0,0,100,100));
application.ProcessMessages;
И опять ничего на форме не появляется.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

:) А ты не к канвасу Image'а обращайся, а к канвасу Битмапа.
т.е. Image1.Picture.Bitmap.Canvas <- именно тут лежит картинка.
С уважением, Lost Angel...
Ответить