На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > Определить формат изображения , загруженного в TMemoryStream
      Например:

      ExpandedWrap disabled
        type
          TImageType = (NoImage, Bmp, Gif, Gif89, Png, Jpg);
         
        function KindOfImage(Start: Pointer): TImageType;
        type
          ByteArray = array[0..10] of Byte;
        var
          PB: ^ByteArray absolute Start;
          PW: ^Word absolute Start;
          PL: ^DWord absolute Start;
        begin
          if PL^ = $38464947 then
          begin
            if PB^[4] = Ord('9') then Result := Gif89
            else Result := Gif;
          end
          else if PW^ = $4D42 then Result := Bmp
          else if PL^ = $474E5089 then Result := Png
          else if PW^ = $D8FF then Result := Jpg
          else Result := NoImage;
        end;


      Пользоваться можно так:

      ExpandedWrap disabled
        case KindOfImage(MemoryStream.Memory) of
        ...


      Эта тема была разделена из темы "Формат изображения в TMemoryStream"
        Для тех, кого смущает absolute:
        ExpandedWrap disabled
          type
            TImageType = (NoImage, Bmp, Gif, Gif89, Png, Jpg);
           
          function KindOfImage(Start: Pointer): TImageType;
          begin
            if LongWord(Start^) = $38464947 then
            begin
              if (PChar(Start) + 4)^ = '9' then Result := Gif89
              else Result := Gif;
            end
            else if Word(Start^) = $4D42 then Result := Bmp
            else if LongWord(Start^) = $474E5089 then Result := Png
            else if Word(Start^) = $D8FF then Result := Jpg
            else Result := NoImage;
          end;
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0182 ]   [ 16 queries used ]   [ Generated: 7.10.24, 18:03 GMT ]