2012-12-19 2 views
0

RETS 기반 서비스를 호출하여 속성 목록에 대한 데이터를 수집합니다. 물론 이것에 대한 주요 측면 중 하나는 사진을 얻는 것입니다. 나는 /이 원시 데이터를 사용의 실제 파일로 돌려 변환하려면 어떻게 ...원본 이미지 데이터를 실제 파일로 변환

ÿØÿàJFIF``ÿá"ExifII*îhÿÛC  $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀU"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ 

등, 등, 등 그러나, 사진에 대한 데이터는 그대로 원시 이미지 데이터입니다 웹 서버?

+0

, 몇 가지 예입니다. 이것은 효과가있다. – Pateman

+2

예 jpeg (4 ~ 7 바이트의 JFIF) – Eelke

답변

2

이 원시 데이터를 파일에 쓰는 것이 좋습니다. 파일 형식이 항상 JPG 인 것이 확실한 경우 .jpg을 확장자로 설정하십시오.

그렇지 않은 경우에는 here으로 보길 원할 수 있습니다. 올바른 파일 형식을 얻은 다음 적절한 파일 확장명을 설정하는 데 도움이됩니다.

EDIT RETS 프로토콜을 모르지만 이미지의 콘텐츠 유형이 반환 될 수 있으므로 전체 프로세스가 훨씬 단순 해집니다. :)

0

또한 스트림에 GetObject 요청을 사용하여 주어진 목록의 모든 사진을 가져 오는 경우 ÿØÿ 바이트 (\ xff \ xd8 \ xff \ xe0)로 분할하고 저장하십시오 분할 된 각 바이트 스트림은 jpeg 파일로 생성되지만 각 jpeg의 시작 부분에 ÿØ ÿ을 유지해야하므로 분할 후 각 청크의 시작 부분에 다시 삽입해야합니다. "RETS와 같은"서비스에서이 문제가 발생하여 분할 결과 jpeg 파일 이름에 첨자 (_1, _2 등)를 수동으로 추가해야했습니다. 그것은 같은 것을 었죠 : photo_dir 및 photo_id이 블록 외부에서 정의된다

if response.find('\xff\xd8\xff\xe0') > -1: 
    blist = response.split('\xff\xd8\xff\xe0') 
    blist.remove("") /* get rid of any empty list elements resulting from split */ 
    index = 1 
    for img in blist: 
     file_nm = os.path.join(photo_dir, "{0}_{1}.jpg".format(photo_id, index)) 
     with open(photo_file_nm, "wb") as photo_file: 
      photo_file.write('\xff\xd8\xff\xe0' + img) 
     index += 1 

.... 이 예제는 파이썬이지만 꽤 쉽게 PHP로 변환 할 수 있습니다.

0

RETS 서버에서 mime multipart 개체를 구문 분석해야합니다. 수동으로 각 행을 가져 와서 mime seperator 문자열에서 청크 할 수도 있습니다.이 문자열은 헤더에있는 부분을 알아 내야합니다.

시간을 절약하려면 phrets class 소스 코드를 보거나 (단지 사용하십시오). 당신이 어떤 파일 유형을 알고, 단순히 적절한 확장자를 가진 파일이 원시 데이터 쓰기 (나는 그것이 JPG 같은데요) 경우 여기

https://github.com/troydavisson/PHRETS/blob/master/phrets.php#L141https://github.com/troydavisson/PHRETS/wiki/GetObject