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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2013, 19:44   #1
snakes
Пользователь
 
Регистрация: 11.05.2013
Сообщений: 32
По умолчанию Изображение с размерами Image

Добрый вечер .
Есть такой код:
Код:
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ID3v2Library, Vcl.ExtCtrls, jpeg, pngimage;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
Var tag : TID3v2Tag;
    mem : TMemoryStream;
    mime : AnsiString;
    desc : String;
    ct, index : Integer;
    formats : array[0..1] of TGraphic; //0 - JPEG, 1 - PNG
begin
    tag := TID3v2Tag.Create;
    mem := TMemoryStream.Create;
    formats[0] := TJPEGImage.Create;
    formats[1] := TPNGImage.Create;
    try
      if tag.LoadFromFile('D:\123.mp3') <> ID3V2LIBRARY_SUCCESS then
        ShowMessage('Ошибка открытия');
        //отностиельно того какой резулдьтат вернула обрабатываешь ошибку
      if tag.GetUnicodeCoverPictureStream('APIC', TStream(mem), mime, desc, ct) then
      Begin
          index := 0;
          try
            formats[0].LoadFromStream(mem);
          except
            mem.Position := 0;
            try
              formats[1].LoadFromStream(mem);
              index := 1;
            except
              ShowMessage('Нет подходящего формата');
              Exit;
            end;
          end;
          Image1.Canvas.Draw(0, 0, formats[index]);
      End else
        ShowMessage('Нет графики в файле');
    finally
      tag.Free;
      mem.Free;
      formats[0].Free;
      formats[1].Free;
    end;
end;
 
end.
Все работает ,но картинка рисуется не по размерам Image ,а гораздо больше .
Image.Strench -не помогает .
Как можно это исправить ?
Картинка нужна 150х150
Спасибо)

Последний раз редактировалось Stilet; 28.10.2013 в 20:54.
snakes вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изображение не полностью считывается из Image september Общие вопросы Delphi 3 10.01.2012 04:48
Позиционное копирование изображение в Image artemavd Мультимедиа в Delphi 20 02.07.2010 10:51
Изображение в image _-Re@l-_ Общие вопросы Delphi 2 16.05.2010 11:57
image не появляется изображение borik120 Microsoft Office Excel 1 23.02.2010 01:01
как вращать изображение в image ИЛ87 Помощь студентам 2 15.12.2007 19:47