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.