本文将分享Scrapy:使用重命名默认图像名称自定义图像管道的详细内容,此外,我们还将为大家带来关于C#导出带有图像的Gridview以在自定义图像大小方面表现出色、Docker重命名镜像名称和TAG
本文将分享Scrapy:使用重命名默认图像名称自定义图像管道的详细内容,此外,我们还将为大家带来关于C# 导出带有图像的 Gridview 以在自定义图像大小方面表现出色、Docker重命名镜像名称和TAG操作、ios – 将自定义图像设置为UIBarButtonItem但不显示任何图像、ios – 有没有办法关闭Xcode 8的图像名称自动完成功能?的相关知识,希望对你有所帮助。
本文目录一览:- Scrapy:使用重命名默认图像名称自定义图像管道
- C# 导出带有图像的 Gridview 以在自定义图像大小方面表现出色
- Docker重命名镜像名称和TAG操作
- ios – 将自定义图像设置为UIBarButtonItem但不显示任何图像
- ios – 有没有办法关闭Xcode 8的图像名称自动完成功能?
Scrapy:使用重命名默认图像名称自定义图像管道
如何解决Scrapy:使用重命名默认图像名称自定义图像管道?
在 pipelines.py
from scrapy.contrib.pipeline.images import ImagesPipeline
from scrapy.http import Request
from PIL import Image
from cStringIO import StringIO
import re
class jellyImagesPipeline(ImagesPipeline):
CONVERTED_ORIGINAL = re.compile(''^full/[0-9,a-f]+.jpg$'')
# name information coming from the spider, in each item
# add this information to Requests() for individual images downloads
# through "Meta" dictionary
def get_media_requests(self, item, info):
print "get_media_requests"
return [Request(x, Meta={''image_name'': item["image_name"]})
for x in item.get(''image_urls'', [])]
# this is where the image is extracted from the HTTP response
def get_images(self, response, request, info):
print "get_images"
for key, image, buf, in super(jellyImagesPipeline, self).get_images(response, request, info):
if self.CONVERTED_ORIGINAL.match(key):
key = self.change_filename(key, response)
yield key, image, buf
def change_filename(self, key, response):
return "full/%s.jpg" % response.Meta[''image_name''][0]
在中settings.py,确保有
ITEM_PIPELInes = [''jelly.pipelines.jellyImagesPipeline'']
IMAGES_STORE = ''/path/to/where/you/want/to/store/images''
spider示例:从Python.org主页获取图像,已保存图像的名称(和路径)将遵循站点结构,即位于名为 www.python.org
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item, Field
import urlparse
class CustomItem(Item):
image_urls = Field()
image_names = Field()
images = Field()
class ImageSpider(BaseSpider):
name = "customimg"
allowed_domains = ["www.python.org"]
start_urls = [''http://www.python.org'']
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select(''//img'')
items = []
for site in sites:
item = CustomItem()
item[''image_urls''] = [urlparse.urljoin(response.url, u) for u in site.select(''@src'').extract()]
# the name information for your image
item[''image_name''] = [''whatever_you_want'']
items.append(item)
return items
解决方法
所有图像都已成功下载到我定义的文件夹中,但是在保存到硬盘之前,我无法命名所选的下载图像。
这是我的代码
pipelines.py
class jellyImagesPipeline(ImagesPipeline):
def image_key(self,url,item):
name = item[''image_name'']
return ''full/%s.jpg'' % (name)
def get_media_requests(self,item,info):
print''Entered get_media_request''
for image_url in item[''image_urls'']:
yield Request(image_url)
Image_spider.py
def getImage(self,response):
item = JellyfishItem()
item[''image_urls'']= [response.url]
item[''image_name'']= response.meta[''image_name'']
return item
我需要在代码中进行哪些更改?
更新1
pipelines.py
class jellyImagesPipeline(ImagesPipeline):
def image_custom_key(self,response):
print ''\n\n image_custom_key \n\n''
name = response.meta[''image_name''][0]
img_key = ''full/%s.jpg'' % (name)
print "custom image key:",img_key
return img_key
def get_images(self,response,request,info):
print "\n\n get_images \n\n"
for key,image,buf,in super(jellyImagesPipeline,self).get_images(response,info):
yield key,buf
key = self.image_custom_key(response)
orig_image = Image.open(StringIO(response.body))
image,buf = self.convert_image(orig_image)
yield key,buf
def get_media_requests(self,info):
print "\n\nget_media_requests\n"
return [Request(x,meta={''image_name'': item["image_name"]})
for x in item.get(''image_urls'',[])]
更新2
def image_key(self,image_name):
print ''entered into image_key''
name = ''homeshop/%s.jpg'' %(image_name)
print name
return name
def get_images(self,request):
print ''\nEntered into get_images''
key = self.image_key(request.url)
yield key
def get_media_requests(self,info):
print ''\n\nEntered media_request''
print item[''image_name'']
yield Request(item[''image_urls''][0],meta=dict(image_name=item[''image_name'']))
def item_completed(self,results,info):
print ''\n\nentered into item_completed\n''
print ''Name : '',item[''image_urls'']
print item[''image_name'']
for tuple in results:
print tuple
C# 导出带有图像的 Gridview 以在自定义图像大小方面表现出色
如何解决C# 导出带有图像的 Gridview 以在自定义图像大小方面表现出色?
我尝试将 Gridview 导出到包含图像的 excel,代码成功执行,但是 excel 单元格内的图像大小大于单元格的高度和宽度,在与导出部分相关的代码下方。
感谢帮助
protected void ExportExcel_Click(object sender,EventArgs e)
{
Response.Clear();
Response.Buffer = true;
response.addheader("content-disposition","attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
foreach (TableCell cell in GridView1.HeaderRow.Cells)
{
cell.BackColor = GridView1.HeaderStyle.BackColor;
}
foreach (GridViewRow row in GridView1.Rows)
{
row.BackColor = System.Drawing.Color.White;
foreach (TableCell cell in row.Cells)
{
if (row.RowIndex % 2 == 0)
{
cell.BackColor = GridView1.AlternatingRowStyle.BackColor;
cell.Width = 200;
cell.Height = 150;
}
else
{
cell.BackColor = GridView1.RowStyle.BackColor;
cell.Width = 150;
cell.Height = 100;
}
cell.Css;
}
}
GridView1.RenderControl(hw);
string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Docker重命名镜像名称和TAG操作
使用docker images时,可能会出现REPOSITORY和TAG均为none的镜像,如下图
这时,我们可以重命名镜像
# docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
补充知识:docker image 重命名
docker image 名称不小心写错了,例如想命名为 ubuntu1604-arm-qt,写成了 unbuntu1604-arm-qt。如何改回来?
用 docker tag 重命名
docker images 找到image_id
找到此 image id 是 efeb4214cfc4。
haojc@ubuntu:~/docker/ubuntu1604-arm-qt$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE sword2000/unbuntu1604-arm-qt 1.0 efeb4214cfc4 13 hours ago 7.05GB hello-world latest fce289e99eb9 7 months ago 1.84kB
用docker tag <image_id> 重新命名
docker tag efeb4214cfc4 ubuntu1604-arm-qt
然后将原来的image名称删除
docker rmi sword2000/unbuntu1604-arm-qt:1.0
haojc@ubuntu:~/docker/ubuntu1604-arm-qt$ docker rmi sword2000/unbuntu1604-arm-qt:1.0 Untagged: sword2000/unbuntu1604-arm-qt:1.0 haojc@ubuntu:~/docker/ubuntu1604-arm-qt$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE sword2000/ubuntu1604-arm-qt 1.0 efeb4214cfc4 13 hours ago 7.05GB hello-world latest fce289e99eb9 7 months ago 1.84kB
以上这篇Docker重命名镜像名称和TAG操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
- Docker 彻底删除私有库镜像的操作
- Docker和镜像的操作方法
- 给Docker更换国内镜像源操作
- 在docker下删除两个id相同的镜像的操作
- docker利用单个镜像映射到多个端口操作
- docker常用命令总结之安装、镜像、容器基本操作
- Docker镜像的基本操作方法
ios – 将自定义图像设置为UIBarButtonItem但不显示任何图像
func setupbrowserToolbar() { let browser = UIToolbar(frame: CGRect(x: 0,y: 20,width: self.view.frame.width,height: 30)) //配置返回组件 let path = NSBundle.mainBundle().pathForResource("back",ofType: "png") let urlstr = NSURL(fileURLWithPath: path!) let data = NSData(contentsOfURL: urlstr) let btnback = UIBarButtonItem(image: UIImage(data: data!),style: UIBarButtonItemStyle.Plain,target: self,action: Selector("backClicked:")) //分割按钮1 let btngrap1 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,target: nil,action: nil) //前进按钮 let btnforward = UIBarButtonItem(image: UIImage(named: "forward.png"),action: Selector("forwardClicked:")) //分割按钮2 let btngrap2 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,action: nil) //重新加载 let btnreload = UIBarButtonItem(image: UIImage(named: "reload.png"),action: Selector("reloadClicked:")) //分割按钮3 let btngrap3 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,action: nil) //停止加载 let btnstop = UIBarButtonItem(image: UIImage(named:"stop.png"),action: Selector("stopClicked:")) progress = UIProgressView((frame: CGRect(x: 0,y: 48,width: self.view.frame.width-50,height: 2))) progress.progress = 0 browser.setItems([btnback,btngrap1,btnforward,btngrap2,btnreload,btngrap3,btnstop],animated: true) ptimer = NSTimer(timeInterval: 0.2,selector: Selector("loadProgress"),userInfo: nil,repeats: true) self.view.addSubview(browser) }
my app screen shot
上面的方法是工具栏配置,但我不知道有什么问题.
解决方法
UIImage(named: "yourImageName")!.withRenderingMode(.alwaysOriginal)
ios – 有没有办法关闭Xcode 8的图像名称自动完成功能?
在我的情况下,它建议图像名称,即使它没有任何意义.
例:
偏好没有任何内容.我想知道是否有一些秘密命令来禁用这部分自动完成.
解决方法
它应该是固定的,或者您应该有机会将其关闭.当它用于它的目的时,功能是很好的,正如我在this帖子中描述的那样.
但问题是,当你提到它时,Xcode 8在内容中插入图像是不可能的.例如,如果您有一个for迭代并为x in键入以启动循环,并且您在项目中使用此语法将名称与“in”匹配的任何图像.
烦人的问题,我希望苹果很快就会解决,因为这个功能只适用于图像.
更新:
刚刚确认这仍然是Xcode 8.1稳定版中的一个问题.
更新:
此功能保留在Xcode版本9.0 beta 6(9M214v)中
今天关于Scrapy:使用重命名默认图像名称自定义图像管道的分享就到这里,希望大家有所收获,若想了解更多关于C# 导出带有图像的 Gridview 以在自定义图像大小方面表现出色、Docker重命名镜像名称和TAG操作、ios – 将自定义图像设置为UIBarButtonItem但不显示任何图像、ios – 有没有办法关闭Xcode 8的图像名称自动完成功能?等相关知识,可以在本站进行查询。
本文标签: