我拍了一张图片UIImagePickerController,但文件看起来太大了,无法通过互联网传输,我想调整图片大小.我找不到任何与图像处理相关的方法.
有什么建议?
好的,对不起,这可能是一个noob问题,但我有点卡住了.
所以我正在做的(在我的asp.net应用程序上)是从文件系统加载图像:
System.Drawing.Image tempImage;
tempImage = System.Drawing.Image.FromFile(HttpContext.Server.MapPath(originalPath));
Run Code Online (Sandbox Code Playgroud)
然后我做了一些调整大小:
tempImage = my awesomeResizingFunction(tempImage, newSize);
Run Code Online (Sandbox Code Playgroud)
并打算使用以下方法将其保存到另一个位置的文件系统:
string newPath = "/myAwesomePath/newImageName.jpg";
tempImage.Save(newPath);
Run Code Online (Sandbox Code Playgroud)
而我得到的是这个错误:
"A generic error occurred in GDI+."
Run Code Online (Sandbox Code Playgroud)
我知道图像是"正常的",因为我可以将它写入浏览器并查看已调整大小的图像,我只是在尝试保存时才收到错误.我有点新手,我完全错了吗?(嗯,我猜这很明显,但你知道我的意思......)
问题:我有2500个网站的列表,需要抓取它们的缩略图截图.我怎么做?我可以尝试使用Perl解析网站.- Mechanize将是一件好事.注意:我只需要将结果作为缩略图,在长维中最多240像素.目前,我有一个缓慢的解决方案并且不提供缩略图:如何使脚本以更少的开销更快地运行 - 吐出缩略图
先决条件: addon/mozrepl /模块WWW :: Mechanize :: Firefox; 模块成像器
第一种方法:这是第一个Perl解决方案:
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new();
$mech->get('http://google.com');
my $png = $mech->content_as_png();
Run Code Online (Sandbox Code Playgroud)
大纲:返回给定选项卡或呈现为PNG图像的当前页面.所有参数都是可选的.$ tab默认为当前选项卡.如果给出坐标,则将剪切该矩形.坐标应该是一个散列,其中包含四个常用条目,left,top,width,height.这特定于WWW :: Mechanize :: Firefox.
正如我从perldoc中了解到这个选项与坐标,它不是整个页面的大小调整它只是一个矩形切出它....好吧WWW :: Mechanize :: Firefox负责如何保存截图.好吧,我忘了提到我只需要将图像作为小缩略图 - 所以我们不必拥有非常大的文件......我只需要抓取它们的缩略图截图.我已经在cpan上查找了一些缩小$ png的模块,我找到了Imager
机械模块不关心调整图像大小.在这里,我们在CPAN上有各种图像模块,比如Imager.Imager - 用于生成24位图像的Perl扩展:Imager是用于创建和更改图像的模块.它可以读取和写入各种图像格式,绘制线条和多边形等原始形状,以各种方式将多个图像混合在一起,缩放,裁剪,渲染文本等.我安装了模块 - 但我没有扩展我的基本方法
我已经尝试过的了; 这里是:
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize::Firefox;
my $mech = new WWW::Mechanize::Firefox();
open(INPUT, "<urls.txt") or die $!;
while (<INPUT>) {
chomp;
print "$_\n";
$mech->get($_);
my $png = $mech->content_as_png();
my $name = "$_";
$name …Run Code Online (Sandbox Code Playgroud) 我使用PHP GD库开发了一个图像大小调整和修剪类.我使用了skibulks图像修剪脚本来修剪第一步中的图像背景,并将第二步中的图像缩放到所需的尺寸(保持原始比例).
问题:imagecopy从$this->_trimBackground()功能中获取新修剪的图像尺寸后,是否真的有必要完成第一项工作,以便使用新的修剪尺寸重新创建图像imagecopy(并在之后再次调整大小)? 或者,是否可以将此作业与以下调整大小部分合并imagecopyresampled?
是否还有其他可能的性能改进,我不知道?欢迎各种表现建议!
功能1:
/**
* Resize image file
*
* @param string $filepath the image filepath
* @param integer $width the width to resize
* @param integer $height the height to resize
* @return (image blob|boolean status)
* @throws Asset_Model_Image_Exception
*/
private function _resizeImageByFilepathAndReturn($filepath, $width, $height) {
list($imageWidth, $imageHeight, $imageType) = getimagesize($filepath);
switch($imageType) {
case IMAGETYPE_GIF:
$gdImage = imagecreatefromgif($filepath);
break;
case IMAGETYPE_JPEG:
$gdImage = imagecreatefromjpeg($filepath);
break; …Run Code Online (Sandbox Code Playgroud) 当使用CSS设置图像来增大或缩小以占据容器DIV中的可用空间时,必须采取哪些步骤来保持图像 - 地图区域坐标与不断变化的图像大小同步?
img {
/* border: 2px dotted red; */
width:100% !important;
max-width: none !important;
height: auto !important;
}
div {width: 100%; height: auto}
Run Code Online (Sandbox Code Playgroud)
插件的scaleMap: true属性是否处理这种情况?或者必须采取其他措施?我单独使用scaleMap无法让它工作,但也许我误解了scaleMap的作用.它是否处理用户拖动浏览器窗口更宽或更窄,以及平板设备方向更改的情况?
如何防止ImageButton拉伸图像?
使用此代码段:
<ImageButton
android:src="@drawable/prediction"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_horizontal"
android:scaleType="centerInside"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:contentDescription="some description"
android:text="@string/predict"
local:MvxBind="Click ExecuteQueryCmd" />
Run Code Online (Sandbox Code Playgroud)
我得到以下效果:

图像是64x64 png.
我想要的只是让ImageButton尊重它所分配的图像的原始宽度和长度,从而分辨率.基于类似帖子的建议是使用Button,将其背景设置为图像然后使用自定义选择器,但这听起来像一个黑客.或者这是正确的方法吗?
您好我正在使用我的应用程序显示图像sdwebImage.我这里有一个代码来调整图像大小
func resizeImage(image: UIImage, newWidth: CGFloat) -> UIImage {
let scale = newWidth / image.size.width
let newHeight = image.size.height * scale
UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight))
image.drawInRect(CGRectMake(0, 0, newWidth, newHeight))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
Run Code Online (Sandbox Code Playgroud)
问题是上面的函数接受UIImage作为参数并sdwebimage接受URL.如何在sdwebimage中调用上面的resize函数.或者简单说明如何在此处调整通过sdwebImage呈现的图像的大小
cell.profileImageView.sd_setImageWithURL(UIImage().absoluteURL(profileImageUrl as! String), placeholderImage: UIImage.init(named: "default-profile-icon")?.circle!, completed: completionBlock)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种很好的方法来调整我的客户使用CloudCannon上传的图像.
我已经看过Jekyll插件,但是他们似乎并没有很好地使用CloudCannon.
有没有人有任何提示或技巧让这个工作?
这是我目前使用的代码:
<div class="section blog">
<div class="container">
<div class="row blog__items">
{% for post in site.posts %}
<div class="blog__item col-xs-6 col-sm-4">
<div class="article">
<div class="article__head">
<a href="{{ site.baseurl }}{{ post.url }}" class="article__media">
<img src="{{ site.baseurl }}{{ post.image }}">
</a>
<h3 class="article__title"><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></h3>
</div>
<div class="article__body">
<div class="article__meta">
<p class="article__date"><small>Posted on {{ post.date | date: "%d %B, %Y" }}</small></p>
</div>
<div class="article__text">
{{ post.description }}
</div>
<a href="{{ site.baseurl }}{{ post.url }}" class="article__cta btn …Run Code Online (Sandbox Code Playgroud) 我正在使用Python 3和OpenCV 3.我正在尝试使用EigenFace Recognizer,它使用相同大小的图像进行训练和测试数据集.我从网络摄像头读取图像,并将图像调整为200 x 200,但显示错误.
这是我的代码:
faceDetect=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cam=cv2.VideoCapture(0);
rec=cv2.face.EigenFaceRecognizer_create()
#rec=cv2.face.LBPHFaceRecognizer_create()
rec.read("recognizer/EigenData.xml")
id=0
fontFace = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 1
fontColor = (0, 0, 255)
while(True):
ret,img=cam.read();
resize_img = img.resize((200,200) , img)
gray=cv2.cvtColor(resize_img,cv2.COLOR_BGR2GRAY)
faces=faceDetect.detectMultiScale(gray,1.3,5);
for(x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w, y+h), (0,255,0) , 2)
id, conf=rec.predict(gray[y:y+h, x:x+w]) #EigenFace Predict
cv2.putText(img,str(id),(x,y+h), fontFace, fontScale, fontColor,thickness=2)
cv2.imshow("Face", img);
if(cv2.waitKey(1)==ord('q')):
break;
cam.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
resize_img = img.resize((200,200) , img)
TypeError: 'tuple' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud) 当我使用绘制图像Graphics.DrawImage并以比原始图像更大的尺寸绘制图像时,它最终会变得有点小.您可以在下图中看到:

绿线不应该是可见的,也不是图像的一部分.相反,它们被绘制在图像后面,图像应该覆盖它们.
如何绘制尺寸合适的图像?
编辑:我绘制绿色部分与我传入DrawImage调用的相同矩形,具有图像应该有多大的确切尺寸.所以我的价值观没有任何缺陷(我认为).
编辑2:我使用绿色矩形绘制FillRectangle,因此不需要进行笔计算.此外,我记录了传递给图像和绿色填充的矩形的值,并且值是正确的.这只是图像的关闭.我稍后会发布代码,因为我现在不在我的电脑上.
编辑3:这是我用来渲染图像的代码:
// This is for zooming
public readonly float[] SCALES = { 0.05f, 0.1f, 0.125f, 0.25f, 0.333f, 0.5f, 0.667f, 0.75f, 1.0f, 1.25f, 1.5f, 1.75f, 2.0f, 2.5f, 3.0f, 3.5f, 4.0f, 4.5f, 5.0f, 6.0f, 7.0f, 8.0f, 10.0f, 12.0f, 15.0f, 20.0f, 30.0f, 36.0f };
private int scaleIndex = 8;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
float ScaleFactor = SCALES[scaleIndex];
e.Graphics.InterpolationMode = ScaleFactor < 1 ? InterpolationMode.Bicubic : InterpolationMode.NearestNeighbor; …Run Code Online (Sandbox Code Playgroud) image-resizing ×10
image ×3
c# ×2
gdi+ ×2
android ×1
asp.net ×1
cloudcannon ×1
gd ×1
imagebutton ×1
imagemapster ×1
ios ×1
iphone ×1
jekyll ×1
opencv ×1
parsing ×1
perl ×1
php ×1
python ×1
sdwebimage ×1
swift ×1
thumbnails ×1
timeout ×1