Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

rastavljanje pa sastavljanje...

[es] :: C/C++ programiranje :: rastavljanje pa sastavljanje...

[ Pregleda: 3789 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

glupi

Član broj: 836
Poruke: 199
*.cmu.carnet.hr



Profil

icon rastavljanje pa sastavljanje...04.09.2002. u 14:08 - pre 262 meseci
Moj problem je ovaj: hocu da ucitam neki fajl (npr. slika) u nulama i jedinicama i onda te nule i jedinice opet spremit ali tako da dobijem sliku koju mogu normalno otvorit i gledat. Ja zapravo hocu ucitiat 0 i 1 pa odredjene bitove promijenit i spremit fajl ali tako da on jos radi (da se moze gledat).

ja sam ucitavanje rjesio ovako (ali mislim da nesto tu ne stima)

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("fajl");
char bajt;
while(in >> bajt)
{
for (int i=0;i<8;i++)
{
(bajt & i) ? cout << "1" : cout << "0";
}
}
return 0;
}
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: rastavljanje pa sastavljanje...04.09.2002. u 16:30 - pre 262 meseci
Da li ti to hoces da kazes da zelis da fajl ucitas, onda ga lepo kriptujes nekim altoritmom, snimis ga tako kriptovanog, a onda da ga prikazes kasnije sa tvojim programom jer samo ti znas kako da ga dekriptujes? :) Hajde potrudi se da malo inteligentnije opises svoj problem molim te...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
62.162.102.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: rastavljanje pa sastavljanje...04.09.2002. u 18:19 - pre 262 meseci
Meni izgleda kao da zeli uraditi neki steganografski program :)

ako se radi o enkripciju uz pomoc slikama proveri http://www.yulinux.com/index.php?main=stego.php
People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.mcbone.net



+7169 Profil

icon Re: rastavljanje pa sastavljanje...04.09.2002. u 18:29 - pre 262 meseci
Zavisi o kojem se formatu zapisa radi.

Ako je u pitanju neki prosti bitmap format (kao windows BMP) onda mozes menjati skoro sve bitove, i slika ce biti vidiljiva (naravno - sa losim piskelima) - osim ako ne s*ebes header :)

Napredniji formati su dakako komplikovaniji, i ako promenis neki bit u JPEG slici moze se desiti da vise neces moci da je ucitas.

Informaciju mozes embeddovati i na kraju bitmap slike, obicno tu nece biti problema.

Najbolji nacin za sakrivanje je ipak watermarking, ali za ovo je potrebno imati jako dobro znanje iz digital signal processinga, tako da je bespotrebno objasnjavati tu metodu in-depth - poenta je da ti u frekventnom domenu (preko neke transformacije, recimo DCT) ti u visokofrekventnom spektru modulises neki bitstream koji je vrlo dobro zasticen error-resilence algoritmom - takva modulacija ce izazvati vrlo male artifacte u slici koji bi mogli da lice na televizijski sum, a ti bi teoretski mogao da izvuces tu informaciju posle...

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: rastavljanje pa sastavljanje...04.09.2002. u 18:32 - pre 262 meseci
Naravno da ne štima. Probaj ovako:

Code:


#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream in("sample.jpg", ios::binary);
    unsigned char bajt;
    while(!in.eof())
    {
        in >> bajt;
        unsigned char bit = 1;
        for (int i = 7 ; i >= 0 ;i--)
        {            
            (bajt & (bit << i)) ? cout << "1" : cout << "0";
        }
    }
    return 0;
}



I pogledaj malo ovo
http://www.codeproject.com/cpp/bitbashing.asp
 
Odgovor na temu

glupi

Član broj: 836
Poruke: 199
*.net.hinet.hr



Profil

icon Re: rastavljanje pa sastavljanje...04.09.2002. u 23:29 - pre 262 meseci
Radim steganografski prog. ;)), ali nitko mi nije odgovorio na pitanje. Uzeo sam bitove slike, promijenio ih i sada hocu napravit od tih novih bitova sliku???
Pokusao sam nesto sa ofstream out("...", ios::binary) i outputat te 1 i 0 ali nisam uspio.
 
Odgovor na temu

glupi

Član broj: 836
Poruke: 199
*.cmu.carnet.hr



Profil

icon Re: rastavljanje pa sastavljanje...05.09.2002. u 21:56 - pre 262 meseci
hm... ;(((( nitko??
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: rastavljanje pa sastavljanje...05.09.2002. u 22:09 - pre 262 meseci
Ama, ne razumem nikako šta pitaš. Imaš niz bajtova koje želiš da snimiš na disk, ili nešto drugo?
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.beotel.net



Profil

icon Re: rastavljanje pa sastavljanje...06.09.2002. u 06:06 - pre 262 meseci
Nakon ove FASCINANTNE pobede YU reprezentacije ... evo ukratko jos jednog razumevanja tvog pitanja koje ne mora da bude tacno, sve dok ne pojasnis malo bolje sta u stvari hoces da uradis, iako se ne bavim previse ovim stvarima (grafika konkretno, opet ako na to mislimo).
Ako zelis da snimis samo bitove koji cine sliku, onda ce ti to biti mnogo teze i neisplativije nego sto si nagovestion onim tvojim programamo. Na pokusacu da pomognem na primeru DIB (Device Independant Bitmap Extendend, ne OS2 compatible) file se sastoji od dve header sekcije, prva je BITMAPFILEHEADER, nakon koje dolazi BITMAPINFOHEADER (pogledaj MSDN za clanove).
Tek nakon toga dolaze bitovi. Za 16-bitne i 32-bitne pixele ne moras da imas definisanu color table, ali za ostale moras, osim ako ne zelis da to bude DDB (Device Dependent Bitmap).
Bitovi su poredjani po tzv. 'Bottoms Up' sistemu, sto znaci da prvi redovi bitova slike dolaze na zadnje mesto, a zadnji na prvo mesto u sekciji u fajlu.
Ali tu moras da pripazis i na kompresiju ('Run-Lenght-Encoding' - BI_RGB, BI_RLE8, BI_RLE4, i BI_BITFIELDS) pre nego sto pocnes da radis nesto sa tim. Najednostavnije ti je BI_RGB koja jednostavno trazi ponavljanja.
Ovo pisem, jer ako ces da zapisujes samo bitove (kako sam razumeo iz tvog pitanja) odrices se Device Independacy i moras da znas kako da izvuces bitove kada je koriscena kompresija.
U svakom slucaju pojedino izvacenje sekcije je u velikoj meri nepreporucljivo i ne znam koliko je to upotpunosti izvodljivo. Opet ako sam dobro razumeo sta si hteo da pitas.

Pozdrav.
 
Odgovor na temu

glupi

Član broj: 836
Poruke: 199
*.cmu.carnet.hr



Profil

icon Re: rastavljanje pa sastavljanje...06.09.2002. u 23:08 - pre 262 meseci
Zao mi je ako nisam bio dovoljno jasan ali evo najbolje objasnjenje koje sam mogo smislit. ;))

Imam neki fajl file.file i sada pomocu ovoga ucitam bitove tog fajla:
=============
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("file.file", ios::binary);
unsigned char bajt;
while(!in.eof())
{
in >> bajt;
unsigned char bit = 1;
for (int i = 7 ; i >= 0 ;i--)
{
(bajt & (bit << i)) ? cout << "1" : cout << "0";
}
}
return 0;
}
=============
i sada kad imam bitove kako te bitove spremit na disk da dobijem identican fajl???
zanima me opcenito!

(malo mi teze ide ovo objasnjavanje ;(( )



 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: rastavljanje pa sastavljanje...06.09.2002. u 23:34 - pre 262 meseci
Kada uradiš ono što si gore napisao "nemaš" ništa, već si samo ispisao bitove po ekranu.

Ako hoćeš da učitaš sliku u memoriju, moraš da sačuvaš bajtove (ne bitove) u nekom nizu unsigned char-ova na primer. Posle, ako hoćeš da tu istu sliku snimiš, samo ispišeš sadržaj tog niza u binarni fajl.

Ili sam opet pogrešno razumeo pitanje?
 
Odgovor na temu

glupi

Član broj: 836
Poruke: 199
*.net.hinet.hr



Profil

icon Re: rastavljanje pa sastavljanje...07.09.2002. u 23:31 - pre 262 meseci
Dragi Tata dobro si razumio ali moze neki sample kod koji bi to radio (neko mi je spominjao mmap(), jel se to moze tako??)
 
Odgovor na temu

[es] :: C/C++ programiranje :: rastavljanje pa sastavljanje...

[ Pregleda: 3789 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.