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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 17:00   #1
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию timage в bmp

здраствуйте.
Подскажите, как timage сохранить в отдельный файл bmp?
varelik вне форума Ответить с цитированием
Старый 17.12.2009, 17:07   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

эм ... а image.picture.bitmap.savetofile() никак?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 17.12.2009, 17:55   #3
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

raxp, ага конечно,
но какой то громоздкий тогд аш на 3мб файл получается плюс длина и ширина вылезают за пределы(((
varelik вне форума Ответить с цитированием
Старый 17.12.2009, 17:57   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

ну дык в Bmp сжатие без потерь.(или его там нету вообще)
У меня скрины в BMP занимают порядка 7-10мб
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 17.12.2009, 18:45   #5
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

а вот...
наткнулся на форуме на это:
Код:
procedure CombineImages;
begin
  with TBitmap.Create do begin
    Width:=Image1.Width;
    Height:=Image1.Height;
    Canvas.Draw(0, 0, Image1.Picture.Bitmap);
    SaveToFile('result.bmp');
    Free;
  end;
end;
И вроде как все путем получается, но
Как будто в итоге и не bmp после этой процедуры получается-
дело в том, что я после этого bmp конвертором в pcx перевожу-
и какието готовые bmp переводятся, а те bmp, которые после вышеописаной процедуры получаются в pcx переводятся неправильно

Последний раз редактировалось varelik; 17.12.2009 в 18:48.
varelik вне форума Ответить с цитированием
Старый 17.12.2009, 19:41   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

гм... что тут скажешь ... меняйте конвертор.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 18.12.2009, 15:50   #7
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

все, разобрался- сама процедура правильная. дело было в том что перед переводом в pcx сам bmp должен быть максимум 24 разрядным. Т.е. изначально у меня он был 32х, я сделал его монохромным в painte и все переводится в pcx без вопросов

16:06

собственно теперь осталось выяснить как программно bmp сделать монохромным?

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Модератор

Последний раз редактировалось mihali4; 21.12.2009 в 14:25.
varelik вне форума Ответить с цитированием
Старый 18.12.2009, 16:12   #8
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
procedure Mono(Bmp:TBitmap);
type
  TRGB=record
    B,G,R:Byte;
  end;
  pRGB=^TRGB;
var
  x,y:Word;
  Dest:pRGB;
begin
  for y:=0 to Bmp.Height-1 do
  begin
    Dest:=Bmp.ScanLine[y];
    for x:=0 to Bmp.Width-1 do
    begin
      with Dest^ do
      begin
        if (r+g+b)/3>254 then
        begin
          r:=255;
          g:=255;
          b:=255;
        end else
        begin
          r:=0;
          g:=0;
          b:=0;
        end;
      end;
      Inc(Dest);
    end;
  end;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 21.12.2009, 09:55   #9
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

хм, интересно. а еще вот так оказалось можно:
bmp.monochrome=true;
varelik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bmp в pcx varelik Общие вопросы Delphi 0 16.12.2009 17:10
Узнать цвет пикселя в Timage, если там не bmp а jpeg? TwiX Общие вопросы Delphi 4 27.09.2009 19:11
bmp картинки B@R@B@$HK@ Общие вопросы C/C++ 0 09.06.2009 23:08
Декодирование BMP Rezet Мультимедиа в Delphi 6 24.01.2009 22:33
Изменение размера - Сжатие BMP в TImage Air Помощь студентам 2 02.03.2008 17:00