|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.05.2008, 01:08 | #1 |
Регистрация: 12.05.2008
Сообщений: 5
|
Конвертирование графических форматов файлов
Нужно написать конвертор графических форматов Из (WMF,JPEG,TIFF и др.) в BMP и обратно???
Как решить данную проблему помогите!!! Заранее спасибо!!! |
13.05.2008, 03:58 | #2 | |
Форумчанин Подтвердите свой е-майл
Регистрация: 14.01.2008
Сообщений: 163
|
Цитата:
http://www.delphi.int.ru/articles/14/ http://articles.org.ru/cfaq/index.php?catid=83 |
|
31.10.2008, 23:01 | #3 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Здравствуйте...
Посмотрела я эти статьи... Что-то работает, а вот с чем-то возникли проблемы... Например Конвертирование BMP в RTF. function BitmapToRTF(pict: TBitmap): string ; var bi, bb, rtf: string ; bis, bbs: Cardinal; achar: ShortString; hexpict: string ; I: Integer; begin GetDIBSizes(pict.Handle, bis, bbs); SetLength(bi, bis); SetLength(bb, bbs); GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^); rtf := '{\rtf1 {\pict\dibitmap0 ' ; SetLength(hexpict, (Length(bb) + Length(bi)) * 2 ); I := 2 ; for bis := 1 to Length(bi) do begin achar := IntToHex(Integer(bi[bis]), 2 ); hexpict[I - 1] := achar[ 1 ]; hexpict[I] := achar[ 2 ]; Inc(I, 2 ); end ; for bbs := 1 to Length(bb) do begin achar := IntToHex(Integer(bb[bbs]), 2 ); hexpict[I - 1] := achar[ 1 ]; hexpict[I] := achar[ 2 ]; Inc(I, 2); end ; rtf := rtf + hexpict + ' }}'; Result := rtf; end; тут мне конечно вообще не понятно половина кода, но главный вопрос: как ее вызвать? Я не могу понять что ей передать в качестве параметра? И еще: Конвертирование BMP в ICO. procedure TForm1.Button1Click(Sender: TObject); var IconSizeX : integer; IconSizeY : integer; AndMask : TBitmap; XOrMask : TBitmap; IconInfo : TIconInfo; Icon : TIcon; begin {Получаем размер иконки} IconSizeX := GetSystemMetrics(SM_CXICON); IconSizeY := GetSystemMetrics(SM_CYICON); {Создаём маску "And"} AndMask := TBitmap.Create; AndMask.Monochrome := true; AndMask.Width := IconSizeX; AndMask.Height := IconSizeY; {Рисуем на маске "And"} AndMask.Canvas.Brush.Color := clWhite; AndMask.Canvas.FillRect(Rect( 0 , 0 , IconSizeX, IconSizeY)); AndMask.Canvas.Brush.Color := clBlack; AndMask.Canvas.Ellipse( 4 , 4 , IconSizeX - 4 , IconSizeY - 4 ); {Рисуем для теста} Form1.Canvas.Draw(IconSizeX * 2 , IconSizeY, AndMask); {Создаём маску "XOr"} XOrMask := TBitmap.Create; XOrMask.Width := IconSizeX; XOrMask.Height := IconSizeY; {Рисуем на маске "XOr"} XOrMask.Canvas.Brush.Color := ClBlack; XOrMask.Canvas.FillRect(Rect( 0 , 0 , IconSizeX, IconSizeY)); XOrMask.Canvas.Pen.Color := clRed; XOrMask.Canvas.Brush.Color := clRed; XOrMask.Canvas.Ellipse( 4 , 4 , IconSizeX - 4 , IconSizeY - 4 ); {Рисуем в качестве теста} Form1.Canvas.Draw(IconSizeX * 4 , IconSizeY, XOrMask); {Создаём иконку} Icon := TIcon.Create; IconInfo.fIcon := true; IconInfo.xHotspot := 0 ; IconInfo.yHotspot := 0 ; IconInfo.hbmMask := AndMask.Handle; IconInfo.hbmColor := XOrMask.Handle; Icon.Handle := CreateIconIndirect(IconInfo); {Уничтожаем временные битмапы} AndMask.Free; XOrMask.Free; {Рисуем в качестве теста} Form1.Canvas.Draw(IconSizeX * 6 , IconSizeY, Icon); {Объявляем иконку в качестве иконки приложения} Application.Icon := Icon; {генерируем перерисовку} InvalidateRect(Application.Handle, nil , true); {Освобождаем иконку} Icon.Free; end ; Что эта функция вообще делает?? Зачем она на форме рисует три рисуночка и заменяет иконку, хотя вроде должна файлы конвертировать??? |
31.10.2008, 23:07 | #4 | ||
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
Цитата:
Доработать эти процедуры не составит труда. В первой не знаю есть ли у тебя необходимость, а во второй нужно сделать загрузку битмапа из файла вместо создания новых, и сохранение иконки в файл. Я так понял под конвертацией ты имеешь ввиду файл в файл?
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; 31.10.2008 в 23:14. |
||
31.10.2008, 23:11 | #5 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
А можно конкретней?
Вот, например, у меня есть OpenDialog и как из него достать имя файла, который надо переделать и передать в эту функцию? |
31.10.2008, 23:19 | #6 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Да файл в файл
|
31.10.2008, 23:23 | #7 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Тут все готово, так и оставляй
Код:
Код:
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; 31.10.2008 в 23:41. |
31.10.2008, 23:30 | #8 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
спасибо )))
|
31.10.2008, 23:37 | #9 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Получается, что в итоге вызова процедуры у меня будет переменная, например, newfile типа string, которая будет содержать данные битмапа в текстовом виде.. Я правильно понимаю? И мне теперь надо сохранить это в файл с расширением rtf?
|
31.10.2008, 23:45 | #10 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Тебе нужен BMP в виде текста?
И именно в формате RTF? А txt не подойдет?
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)
Проверь себя! Онлайн тестирование | Мой блог |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Встроенный конвертер графических файлов в Windows | Air | Мультимедиа в Delphi | 12 | 23.03.2008 00:42 |
конвертирование Hex -> Text и Float -> Int | NikOnLine | Общие вопросы Delphi | 13 | 22.12.2007 23:11 |
Открытия графических файлов | Kocapb | Общие вопросы C/C++ | 3 | 01.12.2007 19:11 |
Конвертирование из поля Edit в нормальный знак. | alikon1 | Общие вопросы Delphi | 11 | 27.11.2007 22:53 |
ищу спецификации различных форматов файлов | bphoenix | Свободное общение | 2 | 14.04.2007 13:06 |