Авторизация

Логин: Пароль:
Регистрация Забыли свой пароль?

Как конвертировать картинки?

Страницы: Пред. 1 2
Как конвертировать картинки?
Друзья, только что узнал, замечательный способ, который позволяет сохранить любой графический файл в bmp. Вот код, который это реализует.
Код
 
uses axCtrls,..
...
var
  OleGraphic: TOleGraphic;
  fs: TFileStream;
...
  if OpenDialog1.Execute then begin
    try
      OleGraphic := TOleGraphic.Create;
      fs        := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmSharedenyNone);
      OleGraphic.LoadFromStream(fs);
      Image1.Picture.Assign(OleGraphic);
    finally
      fs.Free;
      OleGraphic.Free
    end;
  end;

Но здесь возникает проблема, сам файл по-прежнему имеет тот формат, в котором он был открыт. Может быть, кто-нибудь знает, как это исправить?
Вообще-то этот код не любой графический файл может конвертировать, а во-вторых, чтобы сделать то, что вы хотите, код должен быть таким
Код
 
procedure AnyToBitmap(Bmp:Graphics.TBitmap;const FileName:string);
var
  OleGraphic:TOleGraphic;
  Stream:TFileStream;
begin
  Stream:=TFileStream.Create(FileName,fmOpenRead or fmShareDenyWrite);
  try
    OleGraphic:=TOleGraphic.Create;
    try
      OleGraphic.LoadFromStream(Stream);
      Bmp.Width:=OleGraphic.Width;
      Bmp.Height:=OleGraphic.Height;
      Bmp.Palette:=OleGraphic.Palette;
      Bmp.Transparent:=OleGraphic.Transparent;
      Bmp.Canvas.Draw(0,0,OleGraphic);
    finally
      OleGraphic.Free;
    end;
  finally
    Stream.Free;
  end;
end;

Тогда все будет работать, так как нужно.
Если формат файла зарегистрирован в системе, то файл этого формата можно будет сохранить. А за код большое спасибо, но меня теперь мучает другой вопрос. Как можно сохранить файл в png?
Вот здесь есть исходник в котором это уже реализовано screen-capture-to-png.zip, но, если честно, я сам с ним не разбирался.
Изменено: Игорь Васильев - 22.12.2009 17:44:56
Привет всем!
wmf, emf - векторные форматы.
А у нас получается, не "очень" векторный.
Из http://msdn.microsoft.com/ru-ru/library/bb882579.aspx , следует , что по умолчанию не установлен кодировщик WMF и другие.
Так вот вопрос , где и как их можно установить эти кодировщики?
Спасибо.
А точно он не установлен? Вроде бы он должен быть в GDI+. Это пробовали: http://msdn.microsoft.com/ru-ru/library/bb882582.aspx ?
Accende lumen sensibus, infude ainorem corbidus!
Страницы: Пред. 1 2
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)