|
|
View Full Version : another image, cbr and cbz viewer
iViewer is a image viewer that accept compressed files (.cbr, .cbz). I use part of the program Comical by James Leighton and part of the ipdf.
the program use the package pikbuf-loader-0.1-ar.ipk from Adam B and I use iliad-regutils-0.1-arm.ipk form Martinj to register the application.
The files that launch iViewer are: .cbr .cbz and .gif . When you open .gif files iViewer scans the folder for all the images.
Use the page bar to change the image,
a long press in the dot button will change to fullscreen another long press will undo the fullscreen.
the image type accepted are : jpg, jpeg, png, bmp, gif (tested) and ico, wbmp wmf ras, pnm and ani (untested) .
I included a gif image. Copy this gif in any folder with images that you want to see using iViewer.
features:
- turn page with the pagebar
- fullscreen with a long press in the dot button
- two pages images are displayed in landscape mode
- shows last page displayed when you open the app.
---> Install (only tested in cf)
1 - uncompress the zip file in you cf, a iViewer folder with two folders (install, uninstall) will be created.
2 - navigate inside iViewer and click install, if every thing works fine a new entry in the counter list will be created indicate a successful installation.
3 - close and open the iliad. to finish the install. (the iviewer will be installed in the folder cf/Programs/iViewer)
I'm working hard to test the application :p but make me know if you find any bug. :thanks:
(30-11-2008)
I just notice that I compiled iViewer with the log option on. I recompiled, now the program is 5 K smaller and (I hope) a little bit faster.
(01-12-2008)
Modified installers to allow installation in 2.12.1 firmware (book edition).
Known problems:
- problems installing in SD card
- 5" - 8" long to turn page with images of 500K - 700K (busy light is off during this time)
- no sort of the images in the cbz
Thanks to the people who report this problems.
I created a new Project in Dev-hub. Now you can download source there.
https://dev.mobileread.com/trac/iviewer/wiki
(25-01-2009)
I corrected the problem with images that make the app crash. I loaded the new version.
If you have the old version installed, uninstall it first.
After cleaning the code the app is now 279.4kb
Dabon 11-30-2008, 02:27 AM Hi Max,
THANK YOU!!!
So far it is working very fine, and I really like and enjoy the fullscreen option!!! Thank you for such an amazing work from your part.
And I had already started to give up on the hope of having a reliable cbr/cbz viewer for my iliad...I should have remembered that "As long as you are alive...there is always hope..."
This viewer should definitely added as THE viewer for cbr/cbz files, on the web page iliad wikipedia.
Take good care,
:thanks:
Dabon.
serpentium 11-30-2008, 06:53 PM hi
thanks for your software, but i installed in sd cards (i dont have any cf card) and it didnt worked.
It opens a cbz files and shows the first image but flipping the bar doesnt change anything. If i close the cbz and reopens it i found the page i expected to see before so it means the flipbar worked but didnt updated the image.
can you help? great sw anyway
ps i installed on my BE iliad with version 12.xx.1 instead of normal 12.xx
Hi, serpentium
I don't have any sd to try, I will try with an usb memory. Untill then, can you try a long press in the upper arrow? this should force a screen refresh and should show you the image. Also try to jump to the next page clicking with the stylus in the pagebar.
Other thing to test is the file extension, should be in lowercase, and the image types. Try also with cbr and with a gif image.
I'm searching information about 12.xx.1 firmware.
Gualtiero 12-01-2008, 06:55 AM Tried to install the program on my iLiad Book Edition.
Got the following message:
Installation Failed.
Reason "Firmware 2.12 is needed, your iLiad has got 2.12.1".
Are you planning an upgrade to fix this?
Thank you for your attention and keep up the good work.
Gualtiero
Hi Gualtiero, sorry i didn't realize book edition has a diferent firmware versio. This evening i will change the install scrip to accept version 2.12.1. and post the new installer.
serpentium 12-01-2008, 12:20 PM Hi Gualtiero, sorry i didn't realize book edition has a diferent firmware versio. This evening i will change the install scrip to accept version 2.12.1. and post the new installer.
just edit the file Firmware_Script with your version.
just edit the file Firmware_Script with your version.
True, but I will upload a new installer just for firmware 2.12.1
Gualtiero 12-01-2008, 12:54 PM Just edited the file with firmware version.
Installation succesful!
But when I go to open the program nothing happen.
The top left light blink for half a second but the program do not start.
Any ideas?
Thank you
Sorry, now it is working.
Had to shut down and restart.
Now selectin .cbr files works great.
Thank you again for your help
Hi Gualtiero:
This usualy happens when the application can open an image or the cbr/cbz that contains it. Could you post the name of the file you want to open and the type of images it contain? It will be usefull if you can try the other format the program can open.
To save the page you are reading I create a new folder with the same name of the file, move the file inside and create the manifest. It's possible that the parent folder of the file you are trying to open has the same name than the file?
Did you install it in the cf?
thanks.
(sorry for my English)
Gualtiero 12-01-2008, 01:45 PM First of all: I installed it in CF.
The I tried to open the following files, all in .cbr format.
Some "Peanuts" strips (jpeg images inside) ---> OK
Some "Cerebus" comics (jpeg images inside) ---> OK
"The Walking Dead" n°1 (jpeg images inside) ---> OK
Detective Comics 850 (jpeg images inside) ---> Problem
The program show page 1. Sometimes (after a long wait) it seems to jump to next page, but on screen only the first page is displayed. If you close the comic and open it again, it shows the last page selected correctly (probably a problem with refresh here).
But the program seems falling in some loop or just do not refresh the page correctly.
This is the Manifest file:
<?xml version="1.0" encoding="utf-8" ?>
- <package>
- <metadata>
- <dc-metadata>
<Title>Detective Comics 850.cbr</Title>
<Description />
<Date>2008-12-01T18:28:52</Date>
</dc-metadata>
- <y-metadata>
<startpage>Detective Comics 850.cbr</startpage>
<version>000</version>
<ItemSize>16121856</ItemSize>
</y-metadata>
</metadata>
- <last-location>
<pagenumber>2</pagenumber>
</last-location>
</package>
Until now, only Detective Comics 850 seems to have problem.
Do you think is it possible to add a full screen mode?
Just to get a larger image.
i will try other formats in the next few days and let you know.
Hi Gualtiero, exist a fullscreen mode, just have a long press in the dot button, after 2 o 3", the page will change to fullscreen, do a long press again and you will undo de fullscreen.
About your problem with Detective Comics 850, you can force a screen refresh with a long press in the up arrow button. If that work then it should be a problem with the automatic refresh.
I will make some test with jpeg to try to find out what happens.
renushan 12-06-2008, 05:10 AM Hi Max,
My dear friend, do you know that you just made reading wonderful for me? I have a lot of Indrajal Comics which I badly wanted to read in my reader, and no other viewer or conversion tactics really worked for me. Your iviewer works like magic. Loads when we select the comics in the contentlister, remembers last read page, clarity is wonderful... You deserve an award for such a fine work!
One little thing, can you add a half-page zoom facility so we could read books like Tintin (big sized images)? This is a humble request.
Congrats and Best Regards,
RenuShan.
hi renushan, I'm glad you enjoy my application.
I will implement some kind of zoom in a future, but right now I'would like to make it more robust (there are some problems with some jpg). :thanks:
angels90 12-28-2008, 03:01 AM Hi,
Thanks for your work. Seems to be working fine except for one small thing. it seems to skip over double pages (ie those double page spreads combined into one large landscape page) - when moving on from the previous page, it redisplays that page and then skips right over. Happens whether zoomed in or not.
I found problems with large images, I'm checking the code, (so far I have found 2 important bugs). When I got a more stable version I will post here.
thanks.
robinmdh 01-08-2009, 04:22 PM the big page issue is a bit annoying.
I went as far as to write a perl script that extracts resizes and then zips or rars the images again, rough but works ok...
you can run this on a linux bucket prior to putting the files on your iliad it sizes to fit in to 768x1024 or 1024x768 for 2 page spreads and such.
it dumps the new files in a Iliad folder located in the directory where you run it from, it also extracts to temporary folders in that directory.
here it is (http://robin.den-hertog.org/resize2iliad.zip)
dependencies include perlmagick perl imagemagick rar zip.
i'd like to take a look at the sources of the ireader and it is great but i 'd like a 2 page spread to b viewable as a two page spread not on a single page etc.
stuff like that (i'm good with java or c(++), and ok with perl).
this is not perfect to be sure but i had multiple comics i could only open 2 pages of.
p.s: while i converted my whole walking dead set, and gunm(battle angel alita) without a hitch somehow one "echo" file only ended up with 4 files in it instead of the 25-30 or so it was supposed to have.
Robin
I created a project at dev hub.
https://dev.mobileread.com/trac/iviewer/wiki
I uploaded a new version of iViewer.
This version corrects the problem with images that makes iViewer crash. :D
wAizz 03-08-2009, 02:17 PM Thanks, works great.
I installed it from SD and it works.
Steps I took:
1. Installed from SD. Does not proceed.
2. Install from main memory. Failed and uninstalled
3. Installed from SD. Success.
Hope you can use this information for debugging.
Ido Ilan 03-16-2009, 04:31 AM Works great thanks
wAizz 03-23-2009, 03:28 PM Annoying issue I have is that it's not showing images in the correct order.
What is the sorting logic used?
Annoying issue I have is that it's not showing images in the correct order.
What is the sorting logic used?
the image are sorted alfabeticaly
wAizz 03-24-2009, 07:25 PM Weird.
I have a cbz-file, which contains the following files:
name-001-01.jpg
name-001-02.jpg
...
...
name-001-78.jpg
name-001-79-80.jpg
name-001-81.jpg
In my case, it shows name-001-32.jpg as the first image and then shows all images in a -seemingly- random order
Hi wAizz,
I found the problem, I forgot to sort the image names for CBZ files :o , but I do for CBR and for folders :p
as soon as I can, I will correct this bug.
wAizz 03-26-2009, 07:12 PM Hi wAizz,
I found the problem, I forgot to sort the image names for CBZ files :o , but I do for CBR and for folders :p
as soon as I can, I will correct this bug.
Thanks, take your time.
It is at least good to know I'm not going crazy :)
wAizz 04-27-2009, 07:29 PM Hi Max- Any updates? Thanks
Nop, sorry . :o
I was trying to add a Loading/Error page and is giving me troubles.
BassBCN 05-04-2009, 07:32 PM Great work! Thanks! :)
Works fine, need some polishment but now i don't need to convert my comics in pdf or other formats. This is cool!
Waiting for updates. Thanks again!!!!!!!!!!
Thanks for the program!!! Works very well so far, haven't had to look at the code yet ;)
A small suggestion for the installer run.sh : 'if [ "$Firmware_iLiad" = "$Firmware_Script" ]; then' => 'if [ "$Firmware_iLiad" = "2.12" ] || [ "$Firmware_iLiad" = "2.12.1" ]; then'
That way the same package installs on both the 2nd (2.12) and on the book edition (2.12.1 but also 2.12 if de-bricking the reader from the irex site).
XanderL 06-11-2009, 08:40 PM I tried installing the wrong package, which nicely notified me that it was for the other 2.12.1 firmware.
So I downloaded the 2.12 version, but now when I try to install the program it looks like it is doing something, but iViewer is not showing in the Programs folder after a reboot. I also tried using the reset botton on the back, nothing and again I tried to install and again nothing. Also no logfile is created. I am runinng fw 2.12 with developer package. Installing fb-reader was a breeze.
So I tried installing via the shell, just following the run.sh install's, but when I tell it to install the first package it complains that it can not kill the old gunzip process.
Looking at the processes with ps command does not reveal a process named gunzip.
It is most likely something simple, but I am stuck here. please:help:
you shoud check if the install scrip has write any thing in the memory, (if you installed it in the cf, connect the iliad to the pc and check what it wrotes there)
It shoud have created de folder Programs (if it doesn't exist) and a sub folder iViewer. Also check if the contents manager shows the .cbr or .cbz files with the iViewer icon instead the icon with a X in the middel.
Remember than the applications install in the memory where you run it. If the scrip work it creates an entry in the same folder where the package is and say something like "install ok" if it fails the enty says "install failed".
I will check the install script.
Can you post in witch memory did you instaled it (cf, internal, MMC)? and is the same where you install fb-reader?
XanderL 06-12-2009, 09:48 AM I installed it on CF, the same as FBreader. It only created the extra file when I used the wrong installer, telling me that the install had failed. While using the correct installerer, it never created a file telling me that the install was good / failed.
It still shows the cross icon for cbr files. I am using a Iliad type 1.
If it doesn't recognice .cbr/.cbz files and doesn't show the folder Prograns nor iViewer the scrip has not run.
In the folder you copy install/uninstall should be a logdir folder. In there the run.sh creates a log of the install. You should check there if there is any usefull information in that log.
One thing you can try is:
- delete the install and uninstall folder of the iliad.
- copy again the folder install / unstall of the 2.12 firmware.
- run first the uninstall scrip, check if it shows a ok result.
- reboot your iliad, and try install again.
This way the instalation will be done as it was the first time you try.
XanderL 06-20-2009, 09:19 AM Sorry for the late response, but I didn't have time before to try again. I have done as you suggested in the previos post. Remove the folder, put back the folder. Then first uninstall -> unistall successful. Then re-install -> install successfull.
Now everything works perfect. Most of my cbr files are color A4 comics, but they still look great on my Iliad type 1. I have to keep it a bit closer to my face, because ofcourse the letters are rather small, but still it is tack-sharp.
I love your program. The only extra thing i would like an option to rotate 90 degrees en then scroll trough the page(s).
Thanks,
Xander
good153 11-10-2009, 01:54 PM Thanks very much for your effort.
tovarish 11-10-2009, 03:04 PM Hi,
This viewer is really functional without having any gui whatsoever (except the comic display). This is indeed a very good software application. The only functionality that is missing that i use in comic viewers in other platforms is dividing double (landscape) pages into two halves and showing the left or the right depending if i have set in manga mode or normal mode.
I am wondering how this functionality can be implemented in iViewer. I am a C++ developer by profession so I could in theory do this myself but I would like some UI tips to implement the above functionality.
tovarish
Hi tovarish ,
I'm glad you liked iViewer and I would appreciate any contribution (I'm a Java Programmer and it has been a long time since I program in C++ :o).
I use the ipdf source as example to implement iViewer and lot of code are adapted form ipdf.
In order to implement the landscape images split you would need to include buttons in the toolbar see IliadToolbar.cpp in the iViewer project in Dev Hub,
and ipdf source class channels.cpp.
the instruction is:
tbAppendPlatformIcon( ertoolbarChannel,
ER_PDF_VIEWER_UA_ID,
iconID_trashcan,
-1);
tbSetStatePlatformIcon(ertoolbarChannel,
ER_PDF_VIEWER_UA_ID,
iconID_trashcan,
iconState_grey );
the only icons you could use (as far as i know) are the already defined. I attach a list of the icons .
After that set the callback function (gtk_signal_connect (GTK_OBJECT (window), "button_press_event", GTK_SIGNAL_FUNC (buttonPressCbk), this)
(see PDFView.cpp from ipdf source)
In iViewer I tried to package all toolbar functions in the class IliadToolbar, but I never finished it.
After that iViewer works with two lists TodoList has an item for every page you wan to render, PageList has the pages rendered as Pixbuf (GrPixbuf is a class that contains the GtkPixbuf). If you can split the page Pixbuf in two and put them in the PageList, iViewer will show them.
I hope this helped you.
I included the attachmend in the first post. The list of icons has de icon id and the image for every state. (iconstate_grey, iconstate_normal and iconstate_selected)
ericshliao 11-10-2009, 09:19 PM After that iViewer works with two lists TodoList has an item for every page you wan to render, PageList has the pages rendered as Pixbuf (GrPixbuf is a class that contains the GtkPixbuf). If you can split the page Pixbuf in two and put them in the PageList, iViewer will show them.
Splitting one landscape image to two portrait images is one solution. IMHO, however, it will take more processing time and ram. I would suggest using GtkViewport to scroll the view to dispaly part of a landscape image. Thus, we have to load a image once, and no need to split it.
Splitting one landscape image to two portrait images is one solution. IMHO, however, it will take more processing time and ram. I would suggest using GtkViewport to scroll the view to dispaly part of a landscape image. Thus, we have to load a image once, and no need to split it.
GtkViewport will be a faster way to implement this functionality, but I would prefer to scroll the image with the pagebar and hide the scrollbar that way you don't have to take out the pen and clink on the page. I never use GtkViewPort and so far didn't found a way to hide the scroll bar.
ericshliao 11-11-2009, 07:18 AM I never use GtkViewPort and so far didn't found a way to hide the scroll bar.
GtkViewport does not have scrollbar. The widget having scrollbar is GtkScrolledWindow. By associating pagebar event with gtk_viewport_set_vadjustment() or gtk_viewport_set_hadjustment(), it's very simple to scroll the viewport.
GtkViewport does not have scrollbar. The widget having scrollbar is GtkScrolledWindow. By associating pagebar event with gtk_viewport_set_vadjustment() or gtk_viewport_set_hadjustment(), it's very simple to scroll the viewport.
So thats the reason I couldn't found a way to hide the scroll bars :p.
Then we only need to detect witch part of the image we are showing and scroll the image or jump to the next if necessary. I have little free time now and don't know when I could try this, but I will let you know how works.
tovarish 11-11-2009, 08:44 AM Thanks for the info max, I am looking into how i can quickly set up a development environment.
tovarish
tovarish 11-12-2009, 06:43 AM Hi Max,
Could you help me with how you set up your build environment. I used this
http://wiki.mobileread.com/wiki/Iliad_unofficial_toolchain
but it pubts all required libraries in /usr/local in scratchbox. This would mean that I have to change your makefiles and then it is not so handy with merging sources back to svn.
I am using a virtual machine so i can set up the system just like you have done.
tovarish
Hi,
I use the official sdk,
see http://www.mobileread.com/forums/showthread.php?t=19406
Download the official SDK package. Unpack it to "/". You should see a "/usr/local/arm" after unpacking. If you unpack it to somewhere else, error may occur during compile. The official SDK already contains needed libs, such as gtk, poppler, eripc, scribble...
you will need to type:
"export PATH=/usr/local/arm/oe/bin:$PATH".
"export CC=arm-linux-gcc".
"export CXX=arm-linux-g++".
tovarish 11-12-2009, 09:53 AM ok got that and now a development environment is up and running. iViewer compiles now and I am ready to work on it.
tovarish 11-12-2009, 12:06 PM Ok so my plan is this.
Program in the code to split a double page into two halves and show them.
Have two new icons in the toolbar.
First to toggle between current behaviour and splitting double pages into two pages.
Second to toggle between normal (left to right) and manga (right to left) modes.
Lets see when I can get this done. Any help pointers to do this will be welcome. I was thinking that the way i will implement (1) is resample the image to fit 1536x1024 and show only one half instead of the whole.
tovarish
tovarish
For step 1, now iViewer resamples de lanscapes image and rotate them 90º, in that point you can implend you behavor. just resample the image. This code is in iViewerModel, getPage(int page).
I hope that this weekend I could try to put a button and call a callback function.
I tried to box all the toolbar behaivor in two classes IliadToolbar and ToolbarEvenHandler. The goal was that you could create a toolbar just creating a new IliadToolbar, adding buttons (addIcon function) and adding callbacks for every button, but that was never implemented (exists a onReceiveToolbarMsg function but all the code is commented).
tovarish 11-13-2009, 09:08 AM Hi, Max
I found
GrPixbuf *aux = pbImage->rotateSimple(); in GrPixbuf *iViewerModel::getPage(int page)
The problem is that getPage(int page) should return one page but i would like it to return 2 pages (split). I am trying to figure out how to implement this.
What I am thinking is maybe instead of returning a GrPixBuf* it should return GrPixBuf** (or vector<GrPixBuf>) so that incase there are two images returned for 1 page then something different can be done.
I think it is a good idea if you can work on having a toolbar for future use.
tovarish
ericshliao 11-14-2009, 04:16 PM So thats the reason I couldn't found a way to hide the scroll bars.
You can hide scrollbar of GtkScrolledWindow by calling gtk_scrolled_window_set_policy() with GtkPolicyType set to GTK_POLICY_NEVER.
|