Linux에서 BMP 파일을 JPEG로 변환


32

누군가 나에게 많은 BMP 파일을 보냈고 JPEG로 필요합니다. 김프를 사용하여 하나씩 변환 할 수는 있지만 한 번에 모두 수행하고 싶습니다. 우분투가 있습니다.

답변:


46

ImageMagick의 mogrify 도구를 사용할 수 있습니다

형식을 바꾸다 jpg * .bmp

1
Windows 용 ImageMagick도 다운로드 할 수 있으므로이 답변은 Windows에서도 작동합니다.
Gnoupi

그것은 sudo apt install imagemagick우분투에 있고 당신은 추가하여 품질을 설정할 수 있습니다-quality 100
mpen

15

Ubuntu에 ImageMagick이 설치되어 있을 것 입니다.
그렇게 할 수 있습니다 .

convert filename.bmp filename.jpg

최신 정보:

mogrify(응답 hyperslug에 의해 참조 cjm) 또한 좋은 옵션입니다.

사용 mogrify , 플립에 그리기, 이미지, 흐림, 자르기, 얼룩 제거, 디더링 크기를 조정에 참여, 다시 샘플, 그리고 훨씬 더하는 프로그램.
이 도구는 요청한 변경 사항으로 원본 이미지 파일을 덮어 쓰는 것을 제외하고 ( 옵션으로 파일 접미사를 변경하지 않는 한) 변환하는 것이 더 쉽습니다 .
-format


1
ImageMagick의 mogrify 명령은 와일드 카드와 함께 쉽게 사용할 수 있기 때문에 변환하는 것보다 낫습니다. hyperslug의 답변을 참조하십시오.
CJM

7

salmonmoose 답변을 약간 변경하겠습니다.

for i in `ls *.bmp`; do convert $i $i.jpg; done

위는 작동하지만 "bmp.jpg"라는 파일을 생성합니다. 이 명령으로 .jpg 파일을 얻을 수 있습니다 :

for i in *.bmp; do convert ${i} ${i%bmp}jpg; done

명령에 man bash대한 자세한 내용을 참조하십시오 for. 이 ${i%bmp}부분은 끝에 "bmp"하위 문자열이없는 문자열 "$ {i}"을 의미합니다.

"$ {i}"에서 문자열을 변환하는 다른 조작이 있습니다. "$ i"는 "$ {i}"의 줄임말입니다. ls *.bmpsalmonmoose 답변 의 부분은 "execute"를 의미 ls *.bmp하며 for for ipart는 각 문자열을 공백으로 구분하여 할당합니다 i. *.bmp디렉토리의 모든 파일 이름과 일치하기 때문에 동일하게 수행됩니다 .

다음과 같은 단점이 for있습니다. 디렉토리의 파일 이름에 "wedding picture 1.bmp"와 같은 공백이 있으면 ivar 에 3 번 할당되어 다음 명령을 수행합니다.

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

내 대답에서 "$ {i % bmp}"일치도 실패합니다.

그러나 해결책이 있습니다 find. 대신 명령을 사용할 수 있습니다 . 자세한 내용 man find을 참조하십시오. 다음과 같은 내용을 입력해야합니다 (시도하기 전에 맨 페이지에서 구문을 확인하십시오).

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(나는 이름 부분을 잘 모르고 -exec, 그 부분에 의심이있다. man find먼저 참조 )

하나의 .jpg 파일에서 모든 이미지를 결합하려면 첫 번째 답변에서 언급 한 것처럼 다른 필터와 연결할 수 있습니다.


1
for i in `ls *.bmp`; do convert $i $i.jpg; done

그렇습니다. filename.bmp.jpg라는 많은 파일이 만들어 지지만 작업을 수행하게됩니다.


쓸모없는 사용 ls.
Dmitry Grigoryev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.