cteni a zapis binarniho (jpg) souboru

Pavel Smerk xsmerk na fi.muni.cz
Středa Září 15 15:58:40 CEST 2010


On Wed, Sep 15, 2010 at 03:42:24PM +0200, Richard Janasek wrote:
> tak jsem zkusil vyhodit vše zbytečné a nechal jen rádoby funkční skript,
> který nefunguje. (zřejmě nerozumím tomu, jak uložit obsah vstupu do pole
> a potom to z pole vytisknout na výstup)
> 
> $VystupniSoubor = "vystup.jpg";
> 
> open(FOTO, $ARGV[0]);   # --- cteme soubor
> binmode (FOTO);
> 
> @foto = <FOTO>;
> 
> open (VystupFoto, ">>$VystupniSoubor");

Tipuju, ze tady chcete > misto >>, protoze jinak by se dalsim spustenim
pripisovalo do tehoz souboru, coz asi neni zadouci.

> binmode (VystupFoto);
> 
> print VystupFoto "@foto";

Tady chcete @foto bez uvozovek, pripadne nekde predtim nastavit $" = '' (viz
man perlvar, ale spis nechcete vkladat pole do retezce, nez pouzivat $").

Mozna stoji za pozornost modul File::Copy.

A obecne byste asi mel venovat chvili sveho casu nejakemu tutorialu pro
zacatecniky, jinak bude Vase programovani hodne krusne a casove narocne.

							S pozdravem,	P.

> > On Wed, Sep 15, 2010 at 05:38:52AM +0200, Richard Janasek wrote:
> >> ano, vstup mam take v binmode, alespon si to myslim. (nedulezite radky
> >> jsem vypustil kvuli prehlednosti)
> >
> > Obecne je dobre zkusit najit nejaky minimalni priklad chyby, tedy funkcni
> > kod, ktery ma nezadouci chovani, a pritom uz nejde zjednodusit. Nezridka
> > pritom clovek sam zjisti, v cem je problem. Tipuju ale, ze nize uvedeny kod
> > netrpi tim, ze by se vstup od vystupu lisil jen absenci binarnich nul,
> > protoze
> >
> >> open(FOTO, $fotka);   # --- cteme soubor
> >> binmode (FOTO);
> >>
> >> @foto =<FOTO>;
> >
> > tady do @foto nactete cely obsah FOTO,
> >
> >> $VystupniSoubor2 = $Jmeno;
> >> open (VystupFoto2, ">>$VystupniSoubor2");
> >> binmode (VystupFoto2);
> >>
> >> while (<FOTO>)
> >
> > takze tady uz ve FOTO nic neni a cyklus neprobehne ani jednou,
> >
> >> {
> >> $Fotecka = getc FOTO;
> >
> > ovsem i kdyby probihal, na jeho konci byste mel ve $Fotecka posledni znak
> > FOTO (nebo tak neco, viz manual), protoze zrejme chcete spis .= nez jen =
> > (ale hlavne si nejsem jisty, jestli je rozumne cist soubor zrovna skrze
> > getc),
> >
> >> }
> >> close(FOTO);
> >>
> >> print VystupFoto2 "$Fotecka\n";
> >
> > no a nakonec pridavate k binarnimu souboru extra znak \n, coz myslim taky
> > neni uplne dobry napad.
> > 									P.
> >
> >>> On Tue, Sep 14, 2010 at 03:31:11PM +0200, Richard Janasek wrote:
> >>>> mam tam tohle:
> >>>>
> >>>> $VystupniSoubor = $Prijmeni;
> >>>> open (VystupFoto, ">>$VystupniSoubor");
> >>>> binmode (VystupFoto);
> >>>
> >>> A zrejme tam mate jeste nejaky dalsi open VstupFoto a na ten filehandle to
> >>> chcete pouzit taky.
> >>> 									P.
> >>>
> >>>> (pouštím to na Win XP a ActiveState Perl5 v12)
> >>>> R.
> >>>>
> >>>>
> >>>>> On Tue, Sep 14, 2010 at 01:33:14PM +0200, Richard Janasek wrote:
> >>>>>> prosim o radu, jakym zpusobem cist binarni soubor (jpg) a jeho nasledny
> >>>>>> zapis do jineho souboru (v podstate kopirka). Kdyz pouziju pristup jako
> >>>>>> k textovemu souboru - getc, tak vystup neni identicky se vstupem (jsou
> >>>>>> vynechany prazdne znaky).
> >>>>>
> >>>>> Funkce binmode? (Manual dokonce rika " ... regardless of platform, use
> >>>>> binmode() on binary data, like for example images." :-)
> >>>>> 							S pozdravem,	P.
> >>>>> _______________________________________________
> >>>>> Perl mailing list
> >>>>> Perl na mailman.muni.cz
> >>>>> https://mailman.muni.cz/mailman/listinfo/perl
> >>>>
> >>>> _______________________________________________
> >>>> Perl mailing list
> >>>> Perl na mailman.muni.cz
> >>>> https://mailman.muni.cz/mailman/listinfo/perl
> >>> _______________________________________________
> >>> Perl mailing list
> >>> Perl na mailman.muni.cz
> >>> https://mailman.muni.cz/mailman/listinfo/perl
> >>
> >> _______________________________________________
> >> Perl mailing list
> >> Perl na mailman.muni.cz
> >> https://mailman.muni.cz/mailman/listinfo/perl
> > _______________________________________________
> > Perl mailing list
> > Perl na mailman.muni.cz
> > https://mailman.muni.cz/mailman/listinfo/perl
> 
> _______________________________________________
> Perl mailing list
> Perl na mailman.muni.cz
> https://mailman.muni.cz/mailman/listinfo/perl


Další informace o konferenci Perl