Форум сайта python.su
на компе сервер делает скрин и отсылает его клиенту на телефоне… только вот клиент его открыть не моежет…
сервер
import socket, win32api, win32con, bluetooth, time, StringIO
from PIL import ImageGrab, Image
srv = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
srv.bind(("",11))
srv.listen(3)
sock, addr = srv.accept()
output = StringIO.StringIO()
im = ImageGrab.grab().quantize(colors=2, method=0)
im.save(output, "PNG")
content = output.getvalue()
sock.send(content)
sock.close()
import appuifw, e32, socket, StringIO
from graphics import Image
sock = socket.socket(socket.AF_BT,socket.SOCK_STREAM)
sock.connect(("00:1f:81:00:00:01", 11))
buf = sock.recv(1024)
im = Image.new((240, 320))
im.clear(0xFFFFFF)
im = Image.open(StringIO.StringIO(buf))
im.save('E:\image.jpg')
sock.close()
Отредактировано (Сен. 25, 2010 04:37:28)
Офлайн
Вы приняли всего один килобайт из картинки: buf = sock.recv(1024). Поищите на форуме, тема много раз обсуждалась.
Офлайн
размер картинки 28672 байта.. попробовал sock.recv(28672) - ничего не изменилось SymbianError: KErrBadName
Офлайн
mr.pihtoИзвините, с Symbian не работал, но вроде graphics.Image.open - параметром принимает имя файла, а не файловый объект, поэтому видимо придется сбросить буфер во временный файл. Ну и: sock.recv(28672) - так не делают, лучше передать длину изображения, а потом принимать меньшими кусками.
размер картинки 28672 байта.. попробовал sock.recv(28672) - ничего не изменилось SymbianError: KErrBadName
Отредактировано (Сен. 26, 2010 10:29:22)
Офлайн
PooHВсе именно так, записывайте изображение во временный файл, например на диск D, который специально для этого предназначен и создается в оперативной памяти….
graphics.Image.open - параметром принимает имя файла, а не файловый объект, поэтому видимо придется сбросить буфер во временный файл.
Офлайн
на диск Д на телефоне? как это сделать?
Офлайн
начеркайте пару строчек кода пажалуйста
Офлайн
import tempfile, если очень хочется.
А про сокеты – даже не смешно уже.
..bw
Отредактировано (Сен. 29, 2010 01:14:53)
Офлайн