2012-12-19 44 views
0

我打電話基於RETS服務來收集有關房地產的數據...當然,一個FO這個越來越照片的主要方面。然而,對於相片的數據是一個名副其實的原始圖像數據:原始圖像數據轉換成物理文件

ÿØÿà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

如果你知道它是什麼文件類型(我猜這是JPG),只是這些原始數據寫入到一個合適的擴展名的文件。這應該工作。 – Pateman

+2

是的,它是jpeg(JFIF字節4-7) – Eelke

回答

2

試試這個簡單的原始數據寫入到文件中。如果您確定文件格式始終爲JPG,請將.jpg設爲擴展名。

如果不是,您可能需要看看here - 這應該可以幫助您獲取正確的文件格式,然後設置適當的文件擴展名。

編輯我不知道RETS協議,但它可能會返回您的圖像的內容類型,這應該更簡化整個過程。 :)

0

此外,如果您在給定列表的所有照片使用GetObject請求時在流中獲取多個jpeg,則可以在ÿØÿà字節(\ xff \ xd8 \ xff \ xe0)上分割並保存每個字節流從拆分爲JPEG文件產生的,但你必須保持ÿØÿà在每個JPEG圖像的開始,所以你需要做拆分後的每個塊的開頭重新插入。我遇到過這種從「RETS樣」服務,以及和不得不手動(_1,_2等)加標從分裂產生的JPEG文件名。它結束了是這樣的:

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 

...其中photo_dir和photo_id被此塊之外定義。這個例子是Python,但可以很容易地轉換爲PHP。