만화책 PDA용으로 변환하기

saxboy의 이미지

코믹구루생성기 와 비슷한 역할을 하는 스크립트를 netpbm으로 아주 대강 만들어 본 것입니다.

대강 하는 일은 두페이지 이미지를 세로로 반으로 자르고 다시 가로로 한번씩 잘라서 320x240에 맞는 이미지를 만들고 샤프닝을 시켜 묶어내는 정도입니다. 대단한 내용은 없지만 에러처리를 조금 시키고 응용하면 여러가지로 이미지 트랜스코딩이 필요할 때 편리하게 써먹을 수 있습니다. 섬네일 만들기도 해당되겠지요.

리눅스 PDA(요피, 자우르스등)를 사용하는 분들이라면 만화책 컨버터로 사용하셔도 무방합니다. 시티헌터 1권을 시험삼아 바꿔보았더니 한권에 11MB가 됩니다. 좀 크군요. 시간나면 코믹구루 분석이나 해볼까...

#!/bin/sh

TARGET=$2
DIRNAME=$1


for file in $DIRNAME/*.jpg
do
FILENAME=$file
TMPFILENAME="${FILENAME}.pnm"
echo ${FILENAME}



jpegtopnm ${FILENAME} > $TMPFILENAME
WIDTH=`pnmfile $TMPFILENAME | awk '{print $4};'`
HEIGHT=`pnmfile $TMPFILENAME | awk '{print $6};'`

X=`expr ${WIDTH} / 2`;
Y=`expr ${HEIGHT} / 2`;

if [[ `expr $WIDTH - $HEIGHT` > 0 ]]
then
        pnmcut 0 0 $X $Y $TMPFILENAME | pnmscale -xsize=320 | pnmnlfilt -0.8 0.5 | ppmtojpeg > ${FILENAME}.tmp1.jpg
        pnmcut 0 $Y  $X $Y $TMPFILENAME | pnmscale -xsize=320 | pnmnlfilt -0.8 0.5 | ppmtojpeg > ${FILENAME}.tmp2.jpg
        pnmcut $X 0 $X $Y $TMPFILENAME | pnmscale -xsize=320 | pnmnlfilt -0.7 0.5 | ppmtojpeg >${FILENAME}.tmp3.jpg
        pnmcut $X $Y  $X $Y $TMPFILENAME | pnmscale -xsize=320 | pnmnlfilt -0.7 0.5 | ppmtojpeg >${FILENAME}.tmp4.jpg
else
        pnmcut 0 0 $WIDTH $Y $TMPFILENAME | pnmscale -xsize=320 | pnmnlfilt -0.8 0.5 | ppmtojpeg > ${FILENAME}.tmp1.jpg
        pnmcut 0 $Y $WIDTH $Y $TMPFILENAME | pnmscale -xsize=320 | pnmnlfilt -0.8 0.5 | ppmtojpeg > ${FILENAME}.tmp2.jpg
fi

done


rm ${TARGET}.zip
zip ${TARGET} ${DIRNAME}/*.tmp*.jpg
rm ${DIRNAME}/*.tmp*.jpg
rm ${DIRNAME}/*.pnm
Forums: 
maddie의 이미지

오홋....
제가 구하고 있던 것입니다
사실 이미지만 그렇게 만들고 이름 규칙 정당히 하여 만들어 놓은 다음 이미지 갤러리 만드는(html) 프로그램으로 대충 돌리고 plucker같은 툴을 돌리면 팜에서도 사용할 수 있을 것 같습니다!

함 해봐야 겠습니다.ㅋ

힘없는자의 슬픔

delli의 이미지

.

delli의 이미지

자답입니다 -_-;;
netpbm 패키지군요.. 써있었군요 위에 T_T

http://netpbm.sourceforge.net/

다시 초보적인 질문입니다만.
왜 jpeg 파일을 pnm 파일로 옮기신다음 작업하신건가요?

saxboy의 이미지

자르고 늘리고 필터링하는 툴이 전부 pnm에 맞추어 있기 때문이지요. 그리고 netpbm 이 원래부터 그렇게 쓰라고 만들어진 툴입니다. 찾아보시면 웬만한 그림파일들은 대부분 pnm으로 변환하실 수 있습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.