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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2010, 21:18   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Сохранение части изображения из TImage в файл *.bmp

Подскажите пожалуйста как это сделать? Подробнее: я в цикле перебираю каждый пиксель изображения и нужные мне пиксели должны сохраняться в файл *.bmp Возможно такое вообще? Прошу помощи материальной (ссылки, статьи и т.д.). Если кто сталкивался - помогите!
P.S. Простите, не там тему создал... Но помощь до сих пор нужна.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 29.07.2010 в 21:21.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 29.07.2010, 21:21   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Так создай битмап, и в цикле ему нужные пиксели и присваивай, потом сохраняй битмап в файл.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 29.07.2010, 21:25   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Думал так... А если без битмапа? В буфер, или в файл по пикселю писать?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 29.07.2010, 21:31   #4
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Как-то так.
Смотрите справку по StretchBlt...
Код:
procedure TForm2.Button3Click(Sender: TObject);
var b,bb: TBitmap;
begin
  b:=TBitmap.Create;
  bb:=TBitmap.Create;
  try
    b.Width:=175;
    b.Height:=175;
    b.PixelFormat:=pf24bit;
    bb.Assign(MenuBackground.Picture.Graphic);
    StretchBlt(b.Canvas.Handle,0,0,175,175,bb.Canvas.Handle,0,0,175,175,SrcCopy);
    b.SaveToFile('save.bmp');
  finally
    b.Free;
    bb.Free;
  end;
end;
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"

Последний раз редактировалось AlDelta; 29.07.2010 в 21:51. Причина: Очепятался
AlDelta вне форума Ответить с цитированием
Старый 29.07.2010, 21:31   #5
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

ну а чем битмап хуже буфера? + его в .Bmp сохранять легко, проще некуда .
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 29.07.2010, 21:33   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от ImmortalAlexSan Посмотреть сообщение
Думал так... А если без битмапа? В буфер, или в файл по пикселю писать?
А буфер по твоему, это что? Область памяти ты имел ввиду? А битмап разве не область памяти?
Писать в файл по пикселю это жестоко Пиши уже лучше в МемориСтрим а потом уже в файл его сохраняй, но как потом это набор бит будет интерпретироваться? Не проще ли создать битмап, порисовать в нем пиксели и затем сохранить в формате bmp, к-рый любая программа может прочесть?
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 вне форума Ответить с цитированием
Старый 29.07.2010, 21:40   #7
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Спасибо, что откликнулись. Просто мне не хочется пихать лишний битмап на форму, а про буфер, имел ввиду область памяти, которая не имеет графического интерфейса. Может с помощью указателей как-то можно? Вот я сделал сейчас с битмапом вторым. Первый, из которого пишется, имеет свойство stretch=true, а когда я нужные пиксели пишу туда - получается абы что (Рисунок увеличен и видна только часть) Как это исправить? AlDelta, попробую код обязательно. (на 2-ом битмапе стретч в тру тоже, но эффекта как видите нет, да и не должно быть по идеи)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 29.07.2010, 21:49   #8
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Битмап тоже НЕ имеет графического интерфейса (храниться в памяти). Вы не путайте Bitmap и TImgae; Посмотрите код AlDelta, как там битмап создается.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 29.07.2010, 23:03   #9
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

DIgorevich, точно, Битмап и Тимэйдж. Что-то я путаю их. Буду код разбирать.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 29.07.2010, 23:11   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Подробнее: я в цикле перебираю каждый пиксель изображения и нужные мне пиксели должны сохраняться в файл *.bmp Возможно такое вообще?
Хм... Не понятно...
Что означает "нужные мне пиксели"? В каком они виде?
Прямоугольная область должна получаться или как?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение изображения TWinControl в файл Oburec Общие вопросы Delphi 0 09.05.2010 00:48
timage в bmp varelik Мультимедиа в Delphi 8 21.12.2009 09:55
Сохранение заданий на печать в файл изображения JPG DimD Фриланс 1 15.04.2009 19:27
Сохранение загруженного в TImage изображения в папку с программой Torymo Помощь студентам 1 06.02.2009 03:41
Сохранение в *.Bmp - файл Рустам Мультимедиа в Delphi 14 28.11.2007 21:32