Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jpg. Как с ним работать? 
V
    Опции темы
DelphianOracle
Дата 25.11.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Методы CopyRect, StretchDraw работают только с bmp - по крайней мере я так понял - Делфи мне выдал что-то типа
Цитата(Delphi)

Can only modify an image if it contains a bitmap

А мне надо с jpg - bmp очень много весят.
Что тут лучше делать?
PM MAIL   Вверх
WaReZMEN
Дата 25.11.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



DelphianOracle, Так можно конвертить JPG в Bitmap сделать все что нужно и обратно...
PM MAIL ICQ   Вверх
DelphianOracle
Дата 25.11.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Как? DibNeeded? Не работает :(
PM MAIL   Вверх
Alexeis
Дата 25.11.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(DelphianOracle @  25.11.2007,  16:43 Найти цитируемый пост)
Как? DibNeeded? Не работает :( 

Код

  bmp.assign(jpg); // TJpegImage -> TBitmap.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DelphianOracle
Дата 26.11.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Код

var
  bmp:Tbitmap;
  jpg:TjpegImage;
begin
   bmp.Assign(jpg);
end;

Ошибка
Цитата(Delphi)

   [Ошибка] Unit1.pas(35): Incompatible types: 'TJPEGImage' and 'TBitmap'

Что делать?
PM MAIL   Вверх
Snowy
Дата 26.11.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Ну вот пример - туда и обратно.
http://forum.vingrad.ru/forum/topic-114963/index.html
PM MAIL   Вверх
Alexeis
Дата 26.11.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



DelphianOracle, создавать объекты  smile

Добавлено через 49 секунд
DelphianOracle, кроме того Uses jpeg;


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DelphianOracle
Дата 26.11.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Или я за последнее время сильно потупел, или я чего-то недопонял:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  jpg: TJPEGImage;
  bmp: TBitmap;
begin
  jpg := TJPEGImage.Create;
  bmp := TBitmap.Create;
  try
    jpg.LoadFromFile('d1.jpg');
    bmp.Assign(jpg);
    bmp.Canvas.StretchDraw(Rect(0, 0, 100, 100), bmp);
    jpg.Assign(bmp);
    jpg.SaveToFile('d2.jpg');
  finally
    jpg.Free; bmp.Free;
  end;
end;

выдаёт jpg файл неизвестного формата.
Вообще такое ощущние, что после bmp.Assign(jpg) bmp остаётся(или становится) пустым.  smile 
PM MAIL   Вверх
Alexeis
Дата 26.11.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(DelphianOracle @  26.11.2007,  20:28 Найти цитируемый пост)
bmp.Canvas.StretchDraw(Rect(0, 0, 100, 100), bmp);

  На самого себя нельзя.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DelphianOracle
  Дата 26.11.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Цитата(Alexeis @  26.11.2007,  20:31 Найти цитируемый пост)
На самого себя нельзя.

Уряяяяяяяяя!!!
Теперь получилось!!!
Спасибо огромное всем!!!
PM MAIL   Вверх
Snowy
Дата 27.11.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Цитата(Alexeis @  26.11.2007,  20:31 Найти цитируемый пост)
На самого себя нельзя.
Отчего ж нельзя?
Я так написал, чтобы не создавать лишнего бмп.
Может академически это выглядит странно, но это нормально работает.
PM MAIL   Вверх
Alexeis
Дата 27.11.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(Snowy @  27.11.2007,  12:28 Найти цитируемый пост)
Отчего ж нельзя?

Не интересовался почему, но на себя не работает, а на чужой работает.

Добавлено через 14 минут и 50 секунд
Хотя может зависеть от источника. С битмапкой такой вариант проходит.
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  b : TBitmap;
begin
  b := TBitmap.Create;
  b.Width := 200;
  b.Height := 200;
  b.Canvas.LineTo(200, 200);
  b.Canvas.StretchDraw(Rect(100, 0, 200, 100), b);
  Canvas.Draw(20, 20, b);
  b.Free;
end;



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Alexeis
Дата 27.11.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Вообще метод Draw абстрактный, потому как оно будет работать зависит от реализации. Битмапники кэшируются в промежуточный буфер.

Добавлено через 6 минут и 21 секунду
Кажись я понял. DelphianOracle использует Delphi 6 в нем глючный модуль jpeg.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DelphianOracle
Дата 27.11.2007, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Не-а, у меня Delphi 7
Кстати, на себя у меня в другой проги работало, почему здесь не работает не знаю. Как добавил 2-й бмп, всё стало сразу ок.

Это сообщение отредактировал(а) DelphianOracle - 27.11.2007, 20:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.