2011-12-14 6 views
0

나는 수백 개의 PNG 파일을 하나의 큰 파일로 압축하여 데이터베이스처럼 사용할 수있는 방법을 찾고 있는데, 예를 들어 "그림 번호 X 가져 오기"입니다. 나는 그것을 빠르게하고 가능한 적은 양의 디스크 공간을 필요로합니다. 나는 지금까지 Blob로 SQLite를 시도해 보았고 실제로 PNG 파일이 디스크에서 27 % 더 많은 공간을 사용하여 끝납니다. 또한 C# 및 PHP와 호환되어야합니다.PNG 파일 바인더 소프트웨어

덕분에 많은

+0

이미지 관리에 대한 다른 요구 사항은 무엇입니까? 어떻게 그들을 삭제합니까? DB 테이블에 데이터베이스 파일 이름을 저장하고 파일을 디스크에 보관하는 것이 가장 좋은 이유는 무엇입니까? – jmacinnes

+0

내가 생각할 수있는 모든 해결책은 결국 메타 데이터 (예 : 이미지 색인 생성 등)를위한 추가 공간을 차지하게 될 것입니다. –

+0

이미지 형식 PNG는 이미 약간의 품질을 잃지 않거나 압축하지 않고 압축되었습니다 (http://www.graphics.com/modules.php?name=Sections&op=viewarticle&artid=756). 크기를 축소 할 수 없습니다. –

답변

0

난 정말이 일을 원한다면, 나는 우편 패키지에있는 모든 파일을 넣어 것입니다.

나는 많은 것을 압축하지 않기 때문에 "저장소"수준으로 가고 싶지만 내부의 "파일 구조"와 함께 하나의 파일에 파일을 가지고 있기 때문에 어떤 의미인지 추적 할 수 있습니다. PHP와 .NET 모두를위한 Zip 패키지를 다루기위한 라이브러리가 있습니다.

(하지만 실제로는 데이터베이스에 BLOB로 저장하고 여기서는 여러 가지 일을하지 않는 한 27 % 정도의 디스크 공간에 대해 걱정하지 않아도됩니다.)

+0

심지어 몇몇 GiB조차도 요즘에는 그렇게 많은 거래가 아닐 것입니다. – Joey

+0

의견을 보내 주셔서 감사합니다. 재미 있었지만 우리 파일로하고 싶은 일 때문에 속도가 느려졌습니다. 거의 40 %의 파일이 서버에 저장되어 있으므로 27 %의 큰 효과가 있습니다. – ElCapitaine

+1

잠깐, @ 카피 테인, 문제는 디스크 공간이 부족하다는 것입니까? 다른 디스크를 구입하십시오! $ 30-40으로 저장 용량을 두 배로 늘리거나 몇 달을 기다리면 1TB 드라이브가 $ 100 정도 돌아갑니다. 비 정통 압축 방식을 구축하기 위해 소비하는 시간은 더 많은 스토리지를 구입하는 것보다 비용이 많이 듭니다. –

0

이것은 실제로 대답이 아니지만 설명을하기에는 너무 길었습니다.

첫 번째로, 나는 당신이 이것을 원한다고하는 좋은 이유가 있음을 의심 할 여지없이 이점을 줄 것이다. 그러나 솔직히 그런 시나리오를 상상하기는 어렵다. PNG 파일의 "수백 가지"는별로 많지 않습니다. 최악의 경우에도 당신은 몇 기가 바이트입니까? 페니의 저장 가치 (태국에도 불구하고 홍수).

둘째, pngcrush을 사용하십시오. 사실 표준 PNG 압축입니다. 이미지가 PDF에서 변환되었다고 가정하므로 이미지가 최적이 아닌 것으로 가정하고 pngcrush를 통해 이미지를 실행하면 더 많은 압축 헛소리가 필요하지 않을 수 있습니다.

셋째, 필요한만큼 저장하지 않는지 확인하십시오. 이미지의 크기 (픽셀 높이/너비, 평균)를 줄이거 나 색상 깊이를 떨어 뜨릴 수 있습니까? 이미지 품질이 얼마나 중요합니까?

마지막으로 @JonHanna는 압축 파일에 모든 것을 넣는 것이 압축면에서 최상의 결과를 얻게 할 것입니다. 퍼포먼스에 대해 걱정하지 않는다면 가장 높은 압축 설정을 시도해보십시오.하지만 이미 압축 된 PNG가 훨씬 더 압축되지 않기 때문에 큰 차이는 없습니다.

마지막으로 + 1은 DjVu입니다.이 파일은 특별히 변환 된 PDF로 변환해야하는 스캔 된 문서 압축 용으로 특별히 설계된 AT & T가 개발 한 무료 표준입니다. 나는 그것을 사용하지 않았지만 거기에있다.