ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > JPEG->teilweise laden | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- 2 | [ - Beitrag schreiben - ] |
27.02.2006, 13:08 Uhr Ralf27 Posts: 2779 Nutzer |
Ist es eigentlich möglich ein überdimensionales JPEG-Bild nur teilweise zu laden? Leider ist es halt so das eigentlich fast alle ein JPEG-Bild erst komplett laden und dann zur Verfügung stellen. Jedenfalls kenne ich nur ein Programm das das nicht so macht, aber leider keine LIB die ich benutzen könnte. Also, welche Library könnte ich benutzen um gigantische JPEG-Bilder nur teilweise zu laden und dekodieren zu lassen? Jetzt ratet mal wieso ich das hier frage und was ich damit vor habe... Mir ist übrigens auch klar das das extrem langsam wäre... -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
27.02.2006, 13:25 Uhr hjoerg Posts: 3854 Nutzer |
@Ralf27: Als Alternative könnte man das JPG auch rastern und entsprechende Teile laden lassen. -- by WinUAE hjörg Nethands (Bild) http://hjoerg.homepage.t-online.de/thumb.html [ - Antworten - Zitieren - Direktlink - ] |
27.02.2006, 13:39 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Die Idee ist schon recht gut. Allerdings wie soll ich das JPEG-Bild rastern? Dazu müßte ich es ja auch wieder Blockweise laden. Soviel ich weis sind jo die JPEG-Bilder Blockweise gespeichert(wenn dieses Wissen falsch ist, dann tippt es mir. ). Und genau dafür bräuchte ich eine Lib die das Blockweise laden ermöglicht. Denn leider bin ich gerade an die 2GB-Dateigrenze gestoßen, wenn ich Bilder mit externen Programmen von z.b. JPEG nach PPM wandeln lasse. Aber genau diese Programme können JPEG-Bilder blockweise auslesen, denn ich hab keine 2GB Arbeitsspeicher. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 14:39 Uhr hjoerg Posts: 3854 Nutzer |
Zitat: Oh ich hatte den Thread wohl aus den Augen verloren!(Rastern) Dafür gib es auch diverse Programme. Oft wird es auch im Webdesigner/Photoprogrammen angeboten. Zwei Programme die ich nutze sind NAMO-Web-Editor(kom.) und PhotoFiltre(free)+HTMLsplit(addon). Beispiel:(EDIT) *gelöscht* -- by WinUAE hjörg Nethands (Bild) http://hjoerg.homepage.t-online.de/thumb.html [ Dieser Beitrag wurde von hjoerg am 09.03.2006 um 14:40 Uhr geändert. ] [ Dieser Beitrag wurde von hjoerg am 09.03.2006 um 16:31 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 16:14 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Hm, das enspricht dann nicht dem was ich brauche. Aber ich vermute mal das es dafür keine Lib im Amigasektor gibt. Das ganze soll ja das eigene Programm Blockweise laden, bzw. so laden, das nicht das ganze Bild im Arbeitsspeicher dekodiert wird, so wie es z.b. die Programme halt bei diversen CLI-Tools machen. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 16:51 Uhr thomas Posts: 7718 Nutzer |
Mit der jpeg.library und einem DecompressHook müßtest du zumindest vertikal einen Teil des Bildes auslassen können. Eine komplette Zeile mußt du allerdings immer im Speicher halten. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 16:55 Uhr bubblebobble Posts: 707 Nutzer |
Du kannst auch selbst einen JPEG decoder schreiben, der dann Blockweise decodiert. Theoretisch geht das beim JPEG format, da es in 8x8 pixel Blöcken gespeichert wird. Ganz so schwer ist das nicht, aber ein bisschen proggen muss man dazu können. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 17:05 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Nun, da erwischst du mich gleich doppelte auf dem linken Bein: 1. ich bin wirklich kein Poet in Sachen programmieren 2. schreibe ich immer noch in MaxonBasic, die C-Handbücher liegen schon unter meinem Kopfkissen... Ich hab mir das Format schon angesehn und das mit dem 8*8 ist mir halt auch schon aufgefallen, aber wie ich wirklich real das ganze selbst dekodieren könnte.. davon hab ich keinen Plan. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 17:10 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Das liest sich schon mal sehr gut. Denn genau sowas suche ich ja. die jpeg.lib hab ich mir ja auch schon angesehn, aber die Sachen mit den Hooks hab ich nie ganz verstanden und ich gestehe offen, das ich die vermutlich nie ganz begreifen werde. Bei ASL-Requestern hab ich sowas auch schon gesehn, wenn dann via Hook z.b. einzelne Daten von der jeweiligen Auflösung angegeben werden oder änhliche Sachen. Allerdings wie ich das jetzt konkret mit der jpeg.lib machen könnte, hm, da steh ich vor einem Bahnhof. Ich könnte da nur blind reinpicken und das ist ja auch nicht die feine Art... Ich vermute auch mal das dann die gesamte JPEG-Datei geladen werden muß. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
09.03.2006, 23:51 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Zitat: Ach das mit den Hooks ist eigentlich ganz Einfach, es sind im Grunde genommen Funktionen die gewissen Regeln gehorchen vieleicht verstehst du es so Besser, stell dir vor im System gibt es eine Funktion um beliebige Einträge nach einem Schema in Listen einzufügen, da die Einträge beliebig sein sollen muß das System wissen wie diese eingetragen werden sollen, das mußt du dem System dann natürlich auch mitteilen. Für gewöhnlich wird das über Funktionen gemacht, die z.B. angeben ob ein Eintrag größer oder kleiner als ein Anderer ist. Diese funktion wird in einem Hook übergeben und das System ruft dann bei der Einfüge Funktion diesen Hook auf. Ein anderes Beispiel sind BackfillHooks, z.B. kannst du Fenster beim öffnen einen Hintergrund geben, dann wird von Intuition eine Funktion (deine) aufgerufen, die den Hintergrund zeichnet. Bei ASL Requestern habe ich mir das noch nicht angeschaut, aber stell dir vor du möchtest bestimmte Dateien nicht zulassen, die sich nicht mit dem "simplen" Dospatterns realisieren lassen, dann könnte man ein Hook angeben, der diese herausfiltert. [ - Antworten - Zitieren - Direktlink - ] |
10.03.2006, 19:35 Uhr Ralf27 Posts: 2779 Nutzer |
Hm, und wie geh ich da nun am besten vor? Help me, please! -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
11.03.2006, 22:12 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Hmm, du machst ja glaube ich Basic oder?, ich weiß da leider nicht wie man da mir Registern hantiert, du brauchst wenn du es mit der jpeg.library machen willst auf jeden Fall ein Hook (was heißt Hook, es ist etwas selbstentworfenes (Leider)), ansonsten würde ich Sagen dass du dir im Archiv das File dev/examples/load_file/main.c anschaust dort wird gezeigt wie ein ganzes File in den Speicher geladen wird, nun würde Ich vermuten dass du den ganzen Buffer Kram wegläßt (also das AllocBufferFromJPEG() und das Gegenstück dazu, und das entsprechende TAG im DecompressJPEG() wegläßt. Anstelle des JPG_ProgressHook TAGS nimmst du das JPG_RenderHook TAG um damit das Bild Zeilenweise zu generieren. Der Hook bekommt in den Entsprechenden Registern (siehe Autodocs und dev/includes/jpeg/jpeg.h) die Nötigen Informationen, es sheint aber das du das Format (Also ob RGB/Grayscale/YUV etc) nur über das Userdata Feld erhalten kannst) Sorry Ich würde es gerne Übersetzen/Auspobieren, aber die Includes sind für MaxonC oder sonstwas ich weiß jetzt nicht wie ich die auf die schnellefür GCC bekomme. [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 10:14 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Ich hab hier seit kurzem MaxonC++, aber kein GCC, weil ich damals echt an der installation verzweifelt bin. Bei MaxonC++ kann man auf ANSI-C schalten, sodas man wenigstens ein paar paar Zeilen ANSI-C-Code zum üben schreiben kann, aber viel weiter als "Hello World" bin ich bis jetzt noch nicht gekommen. Jeder C-Compiler braucht es irgendwie etwas anderst. Ich wollte so langsam mal in C reinkommen, aber was ich hier für Fehlerhaufen angezeigt bekomme... hm... Oder könntest du mir eine gcc in einem Archiv so zukommen lassen das ich es nur noch entpacken muß und dann "lostesten" kann? MaxonBasic ist schon fett, aber leider auch fett langsam. Ich versteh inzwischen C besser als Blitz oder AmiBlitz und ich vermute mal das ich mit C etwas besser aufgehoben bin. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 11:17 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Also das mit dem Installieren ist so ne Sache, da war ich selber Froh dass ich das Hinbekommen habe. Aber ich denke das ganze ist Eigentlich ganz einfach du musst nur Alles in ein Verzeichnis packen (also Entpacken und dann so wie es ist irgendwo hinkopieren) und am Ende nur ein "path gg:bin add", wenn Sich GCC in gg: befindet. das müsste i.d.R reichen die anderen Pfade z.B. zu den Includes sind dann relativ zu bin, wobei ich aber auch nie so 100% sicher bin wo gcc z.B. seine includes und Linkerlibs sucht. In den readme steht zwar immer was angegeben, aber bei mir kam dann fast immer das er Entsprechendes nicht finden kann. Ich nutze aber Linux zum compilieren. Ich habe zwar auch auf AOS einen GCC installiert, aber das ist noch die 2.95 und völlig verwurschtelt, dass solltest du Besser selber machen. [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 12:50 Uhr thomas Posts: 7718 Nutzer |
@Ralf27: Hast du schonmal VBCC ausprobiert ? http://sun.hasenbraten.de/vbcc/ Ist einfach zu installieren (Installer-Script dabei), deutlich schneller als GCC und du kannst von einem System aus alle Amiga-Plattformen bedienen (außer AROS). Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 13:49 Uhr gni Posts: 1106 Nutzer |
Zitat:Wenn der Installationort GG: ist, dann liegen die Frontends in gg:bin. Neuere Amiga-GCC Pakete (auch binutils!) werden usr:local als Installationsort verlangen. Dann sind die Frontends in usr:local/bin. Zitat:-v erzählt Dir, wo Includes gesucht werden. Du kannst es folgendermaßen probieren: <frontend> -v -x c -c /dev/null -o /dev/null mit Frontend zb. gcc, g++, m68k-amigaos-gcc, ppc-powerup-gcc, ppc-warpos-gcc oder wie auch immer es heisst. Unter AmigaOS sollte die Liste ungefähr so aussehen: GG: oder usr:local und GCC<3.4.x: /[gg,usr]/local/include /[gg,usr/local]/lib/gcc-lib/m68k-amigaos/<Version>/include (*) /[gg,usr/local]/m68k-amigaos/include /[gg,usr]/os-include /[gg,usr]/include (*) Ab 3.4 ist es nicht mehr gcc-lib/ sonder nur gcc/ -H zeigt an woher welches Include kommt. Linkerbibliotheken sind hier zu finden mit prefix GG: oder usr:local $prefix/lib/gcc-lib/m68k-amigaos/<version> $prefix/m68k-amigaos/lib $prefix/lib Wenn Du jetzt "m68k-amigaos" durch ein anderes Target, zb. ppc-powerup ersetzt, dann weist Du wo ppc-powerup-gcc suchen würde. Einziger Unterschied ist, daß es ein Cross-Compiler ist und nur in seinen eigenen Targetverzeichnissen sucht, dh. alles ohne ppc-powerup wird nicht benutzt. [ Dieser Beitrag wurde von gni am 14.03.2006 um 17:29 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 13:54 Uhr Palgucker Posts: 1342 Nutzer |
@ Ralf27 Habe mal meinen GCC3.4 als lzx gepackt, ca 10MB gross. Den könntest Du ja mal ausprobieren. Das ist zwar auch nur eine Grundversion, also Reaction-Demos funktionieren damit noch nicht, aber dafür auch noch nicht "versaut". Wenn Du Interesse hast, schick ich dir das Teil. VBCC ist natürlich eine echte Alternative. mfg Palgucker [ Dieser Beitrag wurde von Palgucker am 14.03.2006 um 16:36 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 13:55 Uhr Mad_Dog Posts: 1944 Nutzer |
@gni: Für den Anfang nimmst Du am besten den StormC 3.0 von der Developer CD - der ist mit wenigen Mouseklicks installiert. Übrigens: Was Du da schreibst trifft nicht zu. ANSI C ist ein Standard. D.h. dass Du z.B. die Sachen aus dem ersten Kapitel meines C-Kurs mit JEDEM ANSI C Compiler machen kannst. CU -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 15:17 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Dein Wort in Gottes Ohr. Ich hab hier MaxonC++, das man per Option zu ANSI C dekradieren kann. Aber irgendwie laufen einige ANSI-C Programme nicht und bei einem Demo was bei MaxonC++ dabei war bekomme ich sogar ein >Panic< vom Compiler. Da war ich erst mal etwas überrascht. Ich hab Dein Kurs darin schon versucht, aber leider lief es nicht. Vielleicht liegt es an den Optionen oder an denn Includes. In C ist wohl vieles möglich, hab mir dazu auch mal logischerweise die Handbücher vorgenommen und da stand auch einiges über Programmierstil, was gut ist und was nicht, was alt ist und was neu, etc. ANSI-C ist wohl ein Standard, aber der Teufel liegt im Detail. Ist so wie AmigaBasic<->MaxonBasic.. eigentlich zu 99,9% kompatibel, aber dann irgendwie auch nicht. Und dann steht man als Laie eben da wie vorm Bahnhof und weis net wie es weitergeht. Hab eben auch mal nachgesehn ob ich StromC auch auf meiner DevOP-CD habe, aber diese ist wohl zu alt (die CD: V1.1). Das interesante: Ich werde bei MaxonBasic wohl immer C-artiger, immer mehr Basic-Befehle meide ich, aber anderstherum komme ich von C aus nicht rein ins programmieren oder steh halt da wie der Ochs vorm Berg. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 15:21 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Lade ich mir eben runter. Bin mal gespannt wie es aussieht. Was meinst du eigentlich mit schneller? Beim Compileren oder bei der Ausführung(wohl eher ersteres)? -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 15:23 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Schick es mir bitte mal. Ich lade mir eben auch VBCC runter um es mal zu testen. Ich will endlich mal weiterkommen, 18Jahre-Basic reichen erst mal für den Einstieg. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 20:16 Uhr Ralf27 Posts: 2779 Nutzer |
Zja, jetzt hab ich GCC, aber wenn ich ein einfach Hello World.c compilieren möchte, meldet sich ein Fenster von ixemul.library, das ich nur mit Abort beenden kann. ?!? Beim zweiten Versuch eben habe ich folgendes bekommen: cc1: internal compiler error: Abort trap Please submit a full bug report, width preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. Sowas meinte ich vorher mit dem "Ochs vorm Berg" ... -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 20:28 Uhr Holger Posts: 8116 Nutzer |
@Ralf27: Du kannst mal versuchen, den Prozessen mehr stack zu geben. Außerdem kannst Du Programme mit der Option -noixemul übersetzen, dann werden diese nicht mehr mit der ixemul-Laufzeitumgebung ausgeführt. Wenn dieser Abort-Requester allerdings durch einen abgefangenen trap verursacht wurde, heißt das, daß Dein Programm abgestürzt ist. In diesem Fall erhälst Du nach der Übersetzung mit -noixemul statt des Requesters höchstwahrscheinlich einen Totalabsturz... mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 20:28 Uhr Kaesebroetchen Posts: 643 Nutzer |
@Ralf27: Den gcc von Hand zu installieren ist wirklich so eine Sache... Warum nimmst du nicht einfach die gcc Installation, die mit dem GoldEd (heisst jetzt wohl Cubic IDE) dabei sind ? Der gcc Teil geht auch mit der Demo. http://www.dietmar-eilert.net/ Da wird gleich alles mit installiert was man brauch (NDK 3.9 usw.) Wenn du nicht mit Gewalt unter AmigaOS Programmieren willst, dann probier mal AmiDevCpp: http://amidevcpp.amiga-world.de/ Damit kannst du unter Windows Programme für AmigaOS, MorphOS, Aros und OS4 kompilieren. Das hat natürlich den Nachteil, das man um die Programme zu testen, mindestens schon mal WinUAE haben muss oder die Programme auf einen echten Amiga kopieren muss. -- http://amidevcpp.amiga-world.de/ [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 20:30 Uhr whose Posts: 2156 Nutzer |
@Ralf27: Wenn Du ein kleine wenig Geduld hast (bis morgen), dann schicke ich Dir ne Liste aller Archive, die Du brauchst und wie die Verzeichnisse auszusehen haben sowie ne kleine Anleitung, wie alles zu entpacken ist. GCC-Installation ist ne Kunst für sich, oder man kauft sich CubicIDE, dessen Installationen laufen 1A und man kann zwischen allen verfügbaren Compilern GCC (2.95.3/3.4)/VBCC hin- und herschalten. Grüße -- --- µA1 PPC 750GX-800 A4000 PPC 604e-233 [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 21:06 Uhr Palgucker Posts: 1342 Nutzer |
@ Ralf27 Ich hab es nochmal getestet, aber das ganze funktioniert bei mir eigendlich auf Anhieb. Die Ixemul.library hat bei mir Version 38.2. Stack habe ich normalerweise 200000. mfg Palgucker [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 21:10 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Nun, ich hab die ixemul version 48 und ein Stack von 4096Bytes eingestellt. Also war vermutlich der Stack zu gering. Wie schaut es aus mit der ixemul? Meine Version hat 166628 Bytes. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 21:13 Uhr Ralf27 Posts: 2779 Nutzer |
Zitat: Ich hab Zeit. So langsam bekommt meine Festplatte wildwuchs: MaxonC++, gcc, vbcc Ich versuch jetzt auch nochmal GoldED mit der Compilervariante. Irgendwann werd ich es doch hinbekommen. MaxonC++ läuft ja, aber vermutlich wäre ich mit gcc oder vbcc doch besser dran. Denn von MaxonC++ hab ich hier im Forum bis jetzt eigentlich kaum was gelesen, aber meistens was von gcc. -- http://www.alternativercomputerclub.de.vu [ - Antworten - Zitieren - Direktlink - ] |
14.03.2006, 21:16 Uhr Palgucker Posts: 1342 Nutzer |
Meine Version hat 167400 Byte - schicke ich dir mal. Merkwürdigerweise läuft es bei mir auch mit 4096 Byte Stack, wobei ich hier UAE nicht über den Weg traue. mfg Palgucker [ - Antworten - Zitieren - Direktlink - ] |
15.03.2006, 09:23 Uhr gni Posts: 1106 Nutzer |
Zitat:Entweder Dir fehlen Assigns oder Du hast eine für Deine Maschine ungeiegnete ixemul.library. [ - Antworten - Zitieren - Direktlink - ] |
-1- 2 | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > JPEG->teilweise laden | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |