PDA

View Full Version : ارسال عکس در پایتون



eletcomp
شنبه 13 مرداد 1397, 14:06 عصر
با سلام بر اساتید
من میخوام برنامه ای را بنوسیم که به صورت کلاینت- سرور باشه یعنی سرور پایتون و کلاینت اندروید(بیسیک)" سئوال اینجا هست چطور باید در پایتون عکس را دریافت کنم؟ توی گوگل سرچ کردم به این سایت رسیدم ولی نمی دانم الگوریتم اش چی هست که تفاوت اش با مشکل من این هست که طرف با جاوا کار کرده ولی من بیسیک کار کردم
https://stackoverflow.com/questions/23312468/python-socket-server-receive-image
کسی می تونه کد زیر را که در همان سایت بود را توضیح بده که چکار می کنه؟ از دستور while به بعد چکار می کنه؟ چرا کمتر از 4 ؟ این 4 چی هست؟ ایا عکس را ذخیره می کنه با دستور open ؟


import socket
import struct
address = ("10.0.0.12", 5000)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(address)
s.listen(1000)


client, addr = s.accept()
print 'got connected from', addr

buf = ''
while len(buf)<4:
buf += client.recv(4-len(buf))
size = struct.unpack('!i', buf)
print "receiving %s bytes" % size

with open('tst.jpg', 'wb') as img:
while True:
data = client.recv(1024)
if not data:
break
img.write(data)
print 'received, yay!'

client.close()

سپاس

Pedram77
چهارشنبه 04 مهر 1397, 14:53 عصر
سلام Base64 کنید بفرستید

maarek
دوشنبه 09 مهر 1397, 00:58 صبح
کسی می تونه کد زیر را که در همان سایت بود را توضیح بده که چکار می کنه؟
از سوکت چهار بایت، چهار بایت عکس دریافت میکنه داخل فایل jpg مینویسه

از دستور while به بعد چکار می کنه؟
بایت هایی که خوانده شده با استفاده از یه کتابخونه که میتونه opencv یا Pilow باشه داخل فایل عکس مینویسه اون img تابع همون کتابخونه هست..
اینجا رو ببین:


https://code-maven.com/create-images-with-python-pil-pillow

https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_image_display/py_image_display.html



چرا کمتر از 4 ؟ این 4 چی هست؟
چون از struct.unpack استفاده کرده
راجع بهش باید بخونی منم تو فهمش مشکل دارم مخصوصا پارامتر اولش :لبخند:


ایا عکس را ذخیره می کنه با دستور open ؟
تابع open فایل و ایجاد میکنه و یه هندل بهت میده که بتونی داخلش بنویسی.
img.write(data)
مینویسه و ذخیره میکنه