Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2010, 20:49   #41
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Да что же Вы "куете" грабли и сами же тут же на них наступаете?
Дайте рисунок и текст и задачу - что Вы от них хотите.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 27.06.2010, 23:00   #42
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

artemavd, в приложенном проекте ответы на все вопросы
Вложения
Тип файла: txt JPEG_BMP_Text.7z.txt (4.2 Кб, 21 просмотров)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 28.06.2010, 08:24   #43
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

mutabor, применил твой код. Файлы вроде создаются. НО:
1. Происходит ошибка. Появляется AccessViolation.
2. Как изменить код, чтобы изображение не создавалось, а бралось bmp-шное из файла и уже его переводило в jpeg? Со второй частью этого вопроса понятно, но вот как с первой быть?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.06.2010, 08:46   #44
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

да вот так:
Код:
procedure bjpg(b: tbitmap; name: string);
var jpg: TJpegImage;
begin
 jpg:= TJpegImage.Create;
 jpg.Assign(b);
 jpg.CompressionQuality:=100;
 jpg.Grayscale:=false;
 jpg.Compress;
 jpg.SaveToFile(name);
 jpg.free
end;

...
 b:= tbitmap.Create;
 b.loadfromfile('1.bmp');
 bjpg(b,'1.jpg');
 b.Free
наложение можно так:
Код:
jpeg := TJPEGImage.Create;
  try
    jpeg.CompressionQuality := 100;
    jpeg.LoadFromFile(DocFileName);
    b := TBitmap.Create;
    try
      b.Assign(jpeg);
      //наложение-
      s:= formatdatetime(' hh:nn:ss.zzz ',time);
      with b.Canvas do begin
       font.Size:= 8;
       font.Name:= 'arial';
       font.Color:= clwhite;
       brush.Color:= clblack;
       TextOut((ClientWidth - length(s)*textwidth('1'))+5,0, s);
       TextOut((ClientWidth - TextWidth(gl_logo)) div 2,(ClientHeight - TextHeight(gl_logo)) div 2, gl_logo)
      end;
      //
      bjpg(b, s+'.jpg');
    finally b.Free end;
  finally jpeg.Free end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 28.06.2010, 08:59   #45
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
procedure bjpg(b: tbitmap; name: string);
var jpg: TJpegImage;
begin
 jpg:= TJpegImage.Create;
 jpg.Assign(b);
 jpg.CompressionQuality:=100;
 jpg.Grayscale:=false;
 jpg.Compress;
 jpg.SaveToFile(name);
 jpg.free
end;

...
 b:= tbitmap.Create;
 b.loadfromfile('1.bmp');
 bjpg(b,'1.jpg');
 b.Free
Это отдельная процедура какая-то да?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.06.2010, 09:02   #46
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

да, но можно и вовнутрь пихнуть
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 28.06.2010, 09:07   #47
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Иными словами, можно ли весь код оформить так?:
Код:
//как отдельную процедуру
procedure bjpg(b: tbitmap; name: string);
var jpg: TJpegImage;
begin
 jpg:= TJpegImage.Create;
 jpg.Assign(b);
 jpg.CompressionQuality:=100;
 jpg.Grayscale:=false;
 jpg.Compress;
 jpg.SaveToFile(name);
 jpg.free
end;


//а это в процедуру кнопки кинуть
jpeg := TJPEGImage.Create;
b:= tbitmap.Create;
b.loadfromfile('1.bmp');
bjpg(b,'1.jpg');
b.Free
  try
    jpeg.CompressionQuality := 100;
    jpeg.LoadFromFile(DocFileName);
//    b := TBitmap.Create;
    try
      b.Assign(jpeg);
      s:= formatdatetime(' hh:nn:ss.zzz ',time);
      with b.Canvas do begin
       font.Size:= 8;
       font.Name:= 'arial';
       font.Color:= clwhite;
       brush.Color:= clblack;
       TextOut((ClientWidth - length(s)*textwidth('1'))+5,0, s);
       TextOut((ClientWidth - TextWidth(gl_logo)) div 2,(ClientHeight - TextHeight(gl_logo)) div 2, gl_logo)
      end;
      //
      bjpg(b, s+'.jpg');
    finally 
  b.Free 
end;
  finally 
 jpeg.Free 
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.06.2010, 09:12   #48
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

да, только уберите дубль загрузки
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 28.06.2010 в 09:16.
raxp вне форума Ответить с цитированием
Старый 28.06.2010, 09:19   #49
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Вот это?:
Код:
//а это в процедуру кнопки кинуть
jpeg := TJPEGImage.Create;
b:= tbitmap.Create;
b.loadfromfile('1.bmp');
bjpg(b,'1.jpg');
b.Free
  try
    jpeg.CompressionQuality := 100;
    jpeg.LoadFromFile(DocFileName);
//    b := TBitmap.Create;
    try
      b.Assign(jpeg);
      s:= formatdatetime(' hh:nn:ss.zzz ',time);
      with b.Canvas do begin
       font.Size:= 8;
       font.Name:= 'arial';
       font.Color:= clwhite;
       brush.Color:= clblack;
       TextOut((ClientWidth - length(s)*textwidth('1'))+5,0, s);
       TextOut((ClientWidth - TextWidth(gl_logo)) div 2,(ClientHeight - TextHeight(gl_logo)) div 2, gl_logo)
      end;
      //
      bjpg(b, s+'.jpg');
    finally 
  b.Free 
end;
  finally 
 jpeg.Free 
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.06.2010, 09:21   #50
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Иными словами, можно ли весь код оформить так?:
Да как угодно, лишь бы работало, можно и так объявить
function BMPToJPEG(Source: TBitmap): TJpegImage;
это кому как удобно.

Что касается вопроса по моему коду, то вместо создания (а создание включает в себя 1. создание объекта, 2. задание ширины и 3. высоты) грузи битмап из файла (т.е. 1. все так же создаем, 2. Грузим из файла, тем же методом к-рый там в коде минимум раза три для Jpeg используется, у битмапа он тоже есть). Вот и всё, как говорил Майкл Джексон

Цитата:
1. Происходит ошибка. Появляется AccessViolation.
У меня нет такой. Возможно, твоя ОС не успевает создать файл к тому времени как программа пытается его загрузить. Ну так это я только как пример сделал, изменяй под свои нужды.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 28.06.2010 в 09:29.
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в др.файле тот же текст, develish151 Microsoft Office Word 4 05.05.2010 13:20
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
Текст повернутый на 90 градусов в Image реально? Kib Мультимедиа в Delphi 4 23.04.2009 13:40
Как узнать какой текст выделен в текст поле mogul82 JavaScript, Ajax 2 02.11.2008 16:32
Движущийся текст на IMAGE как титры BanDit Общие вопросы Delphi 12 14.01.2008 12:19