|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Tapkin 2:5020/400 10 Jan 2003 19:58:32 To : Ivan Frolcov Subject : Re: JPEG comment -------------------------------------------------------------------------------- Поставь себе нормальную библиотеку для работы с графикой: лучшая из существующих, по-моему, GD, и все что к ней причитается :) "Ivan Frolcov" <lala@mail.ge> сообщил/сообщила в новостях следующее: news:fihs1v81joq8lb0b1pjd7de68j22c2rbgj@4ax.com... > On Fri, 10 Jan 2003 03:22:09 +0000 (UTC), Ivan Frolcov <lala@mail.ge> > wrote: > > >Если же какому-нибудь придурку типа меня вдруг потребуется - > >пожалуйста (вроде все верно, ACDSee, Photoshop & IE претензий не > >имеют): > И так всегда :-( > Предыдущий вариант давится, гад, на существующих комментариях... > > #!perl -w > use strict; > sub jpgcomment($$){ > my ($image, $comment)=@_; > $comment.="\0"; > my $i=2; # пропустить лидирующие FF SOI > my(@datas); > > while(1){ > my $data; > my $pre=unpack('n',substr($image,$i,2)); > if ( $pre == 0xFFDA ){ #собственно картинка > push @datas, substr($image,$i,length($image)-$i); > last; > } > next if ( $pre == 0xFFD8 ); # конец данных, в принципе не должно > # быть > $i+=2, next if ( $pre == 0xFFFE ); # изначальный комментарий. > # нафиг > my $cnt=unpack('n',substr($image,$i+2,2)); > push @datas, substr($image,$i,$cnt+2); > $i+=$cnt+2; > last if $i >= length($image); > } > @datas= ($datas[0], > (pack('n n', 0xFFFE, length($comment)+2).$comment), > @datas[1..$#datas]); > > return pack('n',0xFFD8) . join('', @datas) ; > } > > open FILE, "1pix.jpg"; > binmode FILE; > my $buf; > read FILE, $buf, -s FILE; > > open TEXT, "text"; > binmode TEXT; > my $comment; read TEXT, $comment, -s TEXT; > > open OFILE, ">ofile.jpg"; > binmode OFILE; > print OFILE jpgcomment($buf, $comment); > --- ifmail v.2.15dev5 * Origin: Golden Telecom (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/89908bfde897.html, оценка из 5, голосов 10
|