|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Ivan Frolcov 2:5020/400 10 Jan 2003 08:01:51 To : Ivan Frolcov Subject : Re: JPEG comment -------------------------------------------------------------------------------- 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/2080dfb202d7.html, оценка из 5, голосов 10
|