> 안녕하세요 다시 질문드림니다.....급해서
BMP를 JPG로 변환해서 DB에 저장 하료고 합니다.
그런데 BMP는 저장이 잘되는데 JPG는 아무리 해도 저장이 않됨니다...
게시판의 팁을 찾아 해 봤는데 않되는군요...
아무리 해도 jpg 로 의 저장은 형식이 맞지 않다고 하는데 불가능 한가요?
그럼 내가 db 를 잘못 쓴건지 아무리 해도 되질않아요.....
아시는분 힌트라도........
여전히 에러문 " Bitmap image is not valid " 라고 하는데요
지금팁에 올라와 있는 팁은 거의 해본것 같습니다... 이유라도 알고 싶어요.......
>
> > 안녕하세요 다시 질문드림니다.....급해서
>
> BMP를 JPG로 변환해서 DB에 저장 하료고 합니다.
> 그런데 BMP는 저장이 잘되는데 JPG는 아무리 해도 저장이 않됨니다...
> 게시판의 팁을 찾아 해 봤는데 않되는군요...
> 아무리 해도 jpg 로 의 저장은 형식이 맞지 않다고 하는데 불가능 한가요?
> 그럼 내가 db 를 잘못 쓴건지 아무리 해도 되질않아요.....
> 아시는분 힌트라도........
>
> 여전히 에러문 " Bitmap image is not valid " 라고 하는데요
>
> 지금팁에 올라와 있는 팁은 거의 해본것 같습니다... 이유라도 알고 싶어요.......
>
이재식 Wrote :
안녕하세요?
데이터 파일에 blob필드를 하나 만들어서 거기에 jpeg파일을 저장하고
싶어하시는 것 같아요?
bmp는 잘 되는데, jpeg는 안되죠?
패러독스, 오라클등 각종 데이터베이스들이 아직은 jpeg를 bmp처럼 직빵으로
저장을 못할 것입니다.
왜냐하면, 이건 데이터베이스의 특성인데요, 각 디비마다 그림파일을 저장하는
방법이 있습니다. 가령, 패러독스는 jpeg를 제외한 여러가지 그림파일을 저장할수
있게 해주는 데요, 패러독스가 다루는 그림파일들은 저장될때 bmp로 전환이 되어서
저장이 됩니다.
그런데, 생각을 좀 달리해서 이렇게 하시면 안될까요?
가령,오라클에 long raw타입이 있습니다. 그림을 저장하는 필드타입입니다.
그러나, 이 필드타입에 대해서 말들이 많았습니다.
이 필드에 저장된 그림테이터는 display만 되고, 사실상 다른 기능들은 전혀
통하질 않습니다. 그래서, 생각(?)있는 사람들이 이렇게 쓸데없이 그림파일들을
디비에 저장하는 그런방식을 버리고 단지 그림파일에대한 경로만 저장하고
실제 그림파일은 디비가 아닌 다른 temp저장소에 저장을 하는것이 성능이 좋지
않겠느냐하는 제안이었죠.
실제로 그래요. 가령, 패러독스역시 그림파일은 실제 디비에 저장하지 않습니다.
약간의 정보만 저장하고, 실제 그림들은 다른 임시의 저장소에 기록이 됩니다.
그래서, 현재 급하시다면,
jpeg파일을 디비자체에 저장하기보다는 위처럼 따로 저장 디렉토리를 만들어서
저장을 하는것이 어떨까요?
가령, 님께서 다루고있는 그림파일들이 bmp내지 jpeg이라면
상관없이 그냥 디비에 저장하지말고 어떤 경로에 저장하는 것입니다.
여기서, 저장할때 bmp는 용량이 쓸데없이 크니까, 프로그램상에서
TJpegImage컴포넌트를 써서 아주쉽게 bmp를 jpeg으로 전환할 수 있습니다.
그리고, 불러올때는 어짜피 그림파일은 델파이에 끼어있는 디비그리드에는
보여질수 없으니까, DBImage가 아닌 그냥 Image컴포넌트를 써서 불러오면 되죠.
이렇게 구현하는것은 어렵지 않습니다.
오히려, 제 짧은 생각에는 디비의 성능이 우수해질 것입니다.
물론 이미지를 저장해주는 필드는 삭제하고 대신 그 경로를 가리키는
문자열 필드가 있으면 더욱 좋죠.
자료실에 jpeg를 디비에 저장해주는 프로그램들이 있다고 하셨는데요,
제생각에는 많은분들이 자료실에 올릴때 검증없이 올리지는 않았을 것이라고
생각됩니다. 제가 한번 찾아보고 혹 해결이 가능하면 연락드리겠습니다.
두서없지만, 도움이 안되었서도 양해바랍니다.
감사합니다.