在 android 中使用 Glide 从 PC 加载图像
Loading Images from PC using Glide in android
我需要以正常方式使用 Glide,但需要从连接到同一本地网络的 PC 加载图像。
这可能吗?
谢谢,
我想最简单的方法是在本地 PC 上设置 HTTP 服务器。尽管您可能必须额外配置 Glide 以在没有 SSL 的情况下下载图像(或设置服务器以使用更复杂的 SSL)。
下面是您可以使用的简单 Python 服务器。我真的应该强调这不是一个好的 production-ready 解决方案。这只是一个用于开发目的的简单草图。
from http.server import *
class MyHandler(BaseHTTPRequestHandler):
def _set_png_response(self):
self.send_response(200)
self.send_header("Content-type", "image/x-png")
self.end_headers()
def _set_jpg_response(self):
self.send_response(200)
self.send_header("Content-type", "image/jpeg")
self.end_headers()
def do_GET(self):
fileName = self.path.strip("/")
try:
pngFile = open(f"{fileName}.png", 'rb').read()
self._set_png_response()
self.wfile.write(pngFile)
except:
try:
jpgFile = open(f"{fileName}.jpg", 'rb').read()
self._set_jpg_response()
self.wfile.write(jpgFile)
except:
try:
jpgFile = open(f"{fileName}.jpeg", 'rb').read()
self._set_jpg_response()
self.wfile.write(jpgFile)
except:
self.send_error(404)
def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
if __name__ == "__main__":
run(handler_class=MyHandler)
我需要以正常方式使用 Glide,但需要从连接到同一本地网络的 PC 加载图像。 这可能吗?
谢谢,
我想最简单的方法是在本地 PC 上设置 HTTP 服务器。尽管您可能必须额外配置 Glide 以在没有 SSL 的情况下下载图像(或设置服务器以使用更复杂的 SSL)。
下面是您可以使用的简单 Python 服务器。我真的应该强调这不是一个好的 production-ready 解决方案。这只是一个用于开发目的的简单草图。
from http.server import *
class MyHandler(BaseHTTPRequestHandler):
def _set_png_response(self):
self.send_response(200)
self.send_header("Content-type", "image/x-png")
self.end_headers()
def _set_jpg_response(self):
self.send_response(200)
self.send_header("Content-type", "image/jpeg")
self.end_headers()
def do_GET(self):
fileName = self.path.strip("/")
try:
pngFile = open(f"{fileName}.png", 'rb').read()
self._set_png_response()
self.wfile.write(pngFile)
except:
try:
jpgFile = open(f"{fileName}.jpg", 'rb').read()
self._set_jpg_response()
self.wfile.write(jpgFile)
except:
try:
jpgFile = open(f"{fileName}.jpeg", 'rb').read()
self._set_jpg_response()
self.wfile.write(jpgFile)
except:
self.send_error(404)
def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
if __name__ == "__main__":
run(handler_class=MyHandler)