def CropPic(picPath, cropParams, Save_Path): saveFilePath = Save_Path + '/' + os.path.split( os.path.dirname(os.path.dirname(picPath)))[1] + '/' + os.path.split( os.path.dirname(picPath))[1] if os.path.exists(saveFilePath) == False: os.makedirs(saveFilePath) with im.open(picPath) as picHandle: W, H = picHandle.size if abs(W - H) < threshold: new_img = picHandle.resize((cropParams[0], cropParams[1]), im.BILINEAR) pf.Add_Thread( lambda: new_img.save(saveFilePath + '/' + os.path.split( picPath)[1]), 'setDaemon') print('正在处理:' + picPath) else: if W > H: new_img = picHandle.crop(((W - H) / 2, 0, (W + H) / 2, H)) pf.Add_Thread( lambda: new_img.save(saveFilePath + '/' + os.path.split( picPath)[1]), 'setDaemon') else: new_img = picHandle.crop( (0, (H - W) / 2, W, (H + W) / 2)).resize( (cropParams[0], cropParams[1]), im.BILINEAR) pf.Add_Thread( lambda: new_img.save(saveFilePath + '/' + os.path.split( picPath)[1]), 'setDaemon') print('正在处理:' + picPath)
def PostDataProcessing(filePath, username, password, method, object): fileHandler = xlrd.open_workbook(filePath) Sheet = fileHandler.sheet_by_index(0) object.RefreshStatusbar('开始准备上传数据...请稍后') #object.PostDataButton.setEnabled(False) #time.sleep(0.5) URL = AppConfig.METHOD[method]['URL'] JSESSIONID = GetSessionID(username, GetMD5(password)) if JSESSIONID: cookie = {"JSESSIONID": JSESSIONID[0]} FieldsList = Sheet.row_values(1) Row_Count = len(Sheet.col_values(7)) Column_Count = len(FieldsList) # print(Column_Count) if CheckTempXlSX(GetMD5(''.join(FieldsList)), Row_Count): for i in range(2, Row_Count): postData = copy.deepcopy(ProductFields.AddData) for j in range(Column_Count - 1): if j <= 38: postData["productBasicModel"][Sheet.cell( 1, j).value] = str(Sheet.cell(i, j).value).replace( '.0', '') else: #print(i,j,Sheet.cell(i, j).value) postData["skuModels"] = FormatSkuModelsData( Sheet.cell(i, j).value, postData["productBasicModel"]["bonusPointsRate"], postData["productBasicModel"]['salePrice']) postData["id"] = postData["productBasicModel"][ "productId"] postData["productBasicModel"]['mediaModels'] = [] postData["productBasicModel"]['models'] = [] # print(postData) Datas = json.dumps(postData, ensure_ascii=False).encode() object.RefreshStatusbar( "上传%s数据中..." % postData["productBasicModel"]['productName']) pf.Add_Thread( lambda: StartOperating( URL, Datas, cookie, postData["productBasicModel"][ 'productName']), 'setDaemon') #object.PostDataButton.setEnabled(True) object.RefreshStatusbar('上传%s条商品信息数据完成...' % str(Row_Count - 2)) else: object.RefreshStatusbar('导入数据或者模板有误!') object.PostDataButton.setEnabled(True) else: object.RefreshStatusbar('账号密码错误!') object.PostDataButton.setEnabled(True) return False object.PostDataButton.setEnabled(True) for x in locals().keys(): del locals()[x] gc.collect()
def StartProcess(self, method): gv.set_value('width', 640) if method == 'imageadjust': pf.Add_Thread( lambda: WPicAdjust.MultiStart( self.ImagePathlineEdit.text(), self.ImageSavePathlineEdit.text(), self), 'setDaemon') elif method == 'datapost': pf.Add_Thread( lambda: WUploadData.PostDataProcessing( self.ExcelPathlineEdit.text(), self.UserNamelineEdit.text( ), self.PassWordlineEdit.text(), 'Add' if self.AddradioButton.isChecked() else 'Update', self), 'setDaemon') elif method == 'imagepost': pf.Add_Thread( lambda: WUploadData.PostImageProcessing( self.ImagePostPathlineEdit.text(), self.UserNamelineEdit.text(), self.PassWordlineEdit.text( ), 'PicUpload' if self.SaveradioButton.isChecked() else 'PicUploadExamine', self), 'setDaemon')
def ResizeLock(picPath, width, Save_Path): saveFilePath = Save_Path + '/' + os.path.split( os.path.dirname(os.path.dirname(picPath)))[1] + '/' + os.path.split( os.path.dirname(picPath))[1] if os.path.exists(saveFilePath) == False: os.makedirs(saveFilePath) with im.open(picPath) as picHandle: W, H = picHandle.size new_img = picHandle.resize((width, int(H / W * width)), im.BILINEAR) pf.Add_Thread( lambda: new_img.save(saveFilePath + '/' + os.path.split(picPath)[1] ), 'setDaemon') print('正在处理:' + picPath)
def PostImageProcessing(filePath, username, password, method, object): URL = AppConfig.METHOD[method]['URL'] #object.ImageAdjustButton.setEnabled(False) #time.sleep(0.1) JSESSIONID = GetSessionID(username, GetMD5(password)) if JSESSIONID: cookie = {"JSESSIONID": JSESSIONID[0]} PicsInfo = GetPicsInfo(filePath) for picinfo in PicsInfo: postData = json.dumps(FormatImagePostData(picinfo), ensure_ascii=False).encode() object.RefreshStatusbar("上传'%s'商品信息..." % picinfo[0]) pf.Add_Thread( lambda: StartOperating(URL, postData, cookie, picinfo[0]), 'setDaemon') else: object.RefreshStatusbar('账号密码错误!') return False
def LoadView(): root = tkinter.Tk() root.title('微商城工具-v%s' % Version) ico = os.getcwd() + r'\wsc.ico' root.iconbitmap(ico) #root.attributes("-alpha", 0.1) screen_width = root.winfo_screenwidth() // 2 - 187 screen_height = root.winfo_screenheight() // 2 - 260 windows_params = Check_System_Info( root.winfo_screenwidth() // 2 - 187, root.winfo_screenheight() // 2 - 260) root.geometry(windows_params["geometry"]) root.maxsize(windows_params["maxsize-x"], windows_params["maxsize-y"]) root.minsize(windows_params["maxsize-x"], windows_params["maxsize-y"]) textwidth = windows_params["textwidth"] buttonwidth = windows_params["buttonwidth"] height = windows_params["height"] # *********************************图像自动处理***************************************** # 功能区域-标题 ImageAdjustForm = Frame(width=windows_params["maxsize-x"], height=windows_params["maxsize-y"]/3,bg='#87CEEB') ImageAdjustForm.grid(row=0, column=0,padx=0,pady=0) ToolTitle = Label(ImageAdjustForm, text='图片自动处理' ,font='微软雅黑 -15 bold',bg='#87CEEB').grid( column=2, row=1, columnspan=2, sticky=E + W) # 功能区域-图像处理-文件位置选择 ImageAdjustLabel = Label(ImageAdjustForm, text='图片路径 :',bg='#87CEEB').grid( column=1, row=2, columnspan=1, sticky=W) ImageAdjustPathTextValue = StringVar() ImageAdjustPathText = Entry(ImageAdjustForm, font='微软雅黑 -11', bg='#87CEEB', width=textwidth, state='readonly', textvariable=ImageAdjustPathTextValue, justify=LEFT).grid( column=2, row=2, sticky=N + S + E + W, columnspan=2) ImageAdjustPathButton = Button(ImageAdjustForm, text="✚", width=9, bg='#F0FFFF',height=height, command=lambda:SelectFilePath('dir',ImageAdjustPathTextValue)).grid(column=4, row=2, sticky=W+E, rowspan=1) # 功能区域-图像处理-文件保存位置选择 ImageAdjustLabel = Label(ImageAdjustForm, text='保存路径 :',bg='#87CEEB').grid( column=1, row=3, columnspan=1, sticky=W) ImageSavePathTextValue = StringVar() ImageSavePathTextValue.set(pf.GetDesktopPath()+'/'+'微商城图片') ImageSavePathText = Entry(ImageAdjustForm, font='微软雅黑 -11',bg='#87CEEB', width=textwidth, state='readonly', textvariable=ImageSavePathTextValue, justify=LEFT).grid( column=2, row=3, sticky=N + S + E + W, columnspan=2) ImageSavePathButton = Button(ImageAdjustForm, text="✚", width=9, bg='#F0FFFF',height=height, command=lambda:SelectFilePath('dir',ImageSavePathTextValue)).grid(column=4, row=3, sticky=W+E, rowspan=1) # 功能区域-图像处理-宽度 ImageWidthLabel = Label(ImageAdjustForm, text='默认宽度 :',bg='#87CEEB').grid( column=1, row=4, columnspan=1, sticky=W) ImageWidthTextValue = StringVar() ImageWidthTextValue.set(640) ImageWidthText = Entry(ImageAdjustForm, font='微软雅黑 -18', width=4,bg='#87CEEB', textvariable=ImageWidthTextValue, justify=CENTER).grid( column=2, row=4, sticky=N + S + E + W, columnspan=1) # 功能区域-图像处理-执行情况打印 ImageAdjustProcessTextValue = StringVar() gv._global_label = ImageAdjustProcessTextValue ImageAdjustProcessTextValue.set('准备开始') ImageAdjustProcessLabel= Label(ImageAdjustForm, font='微软雅黑 -9',justify=LEFT, textvariable=ImageAdjustProcessTextValue).grid(column=1, row=5, sticky=N + S + E + W, columnspan=4) # 功能区域-图像处理-执行 ImageAdjustStartButton =Button(ImageAdjustForm, text="开始处理", font='微软雅黑 -15 bold',width=9, bg='#F0FFFF',height=height, command=lambda:pf.Add_Thread(lambda:WPicAdjust.MultiStart(ImageAdjustPathTextValue.get(),ImageSavePathTextValue.get()),'setDaemon')).grid(column=3, row=4, sticky=W+E, columnspan=4) # *********************************商品信息上传***************************************** # 功能区域-信息上传-标题 ProductInfoUploadForm = Frame(width=windows_params["maxsize-x"], height=windows_params["maxsize-y"]/3,bg='#98FB98') ProductInfoUploadForm.grid(row=1, column=0,padx=0,pady=3) # 窗口主循环 root.mainloop()